美文网首页
context在混合应用中 上下文切换原生和webview

context在混合应用中 上下文切换原生和webview

作者: 偶然路过的靓仔_胡阳 | 来源:发表于2019-08-08 16:34 被阅读0次

    什么是上下文?

    Context是在编写Android程序经常使用到的对象,意思为上下文对象。常用的有Activity的Context还有Application的Context,同时原生和网页也属于不同的context

    #获取当前上下文方法

    current_context = driver.current_context

    print (current_context)

    #获取全部上下文方法

    contexts = driver.contexts

    print (contexts)

    =========================================================================

    如何在混合应用用切换原生和webview?

    什么是混合应用?

    在原生应用中嵌入网页,这类应用统称为混合应用

    原生应用与混合应用区别:

    如何实现混合应用中测试?

    1.原生部分选用UIAutomator

    2.webview的网页部分选用ChromeDriver

    原生和网页是不同的context,原生native默认的是'NATIVE_APP',网页webview默认的是'WEBVIEW_被测试的进程名称'

    混合应用中webview部分

    1.先安装一个debug包

    2.打开手机或者夜神模拟器开发者模式和调试模式(版本号点击七下)

    3.pc端chrome输入:Chrome://inspect#devices',可以查看网页跟selenium一样定位

    上下文切换到原生app

    driver.switch_to.context('NATIVE_APP')

    at = driver.current_context

    print (at)

    切换成原生app,获取当前的内容,打印出来

    上下文切换到webview

    driver.switch_to.context(context[webview下标])

    at = driver.current_context

    print (at)

    切换成原生app,获取当前的内容,打印出来,或者不写context【webview下标】,使用'WEBVIEW_被测试的进程名称'也可以

    坑:

    1.Chrome://inspect#devices需要翻墙才能看元素

    2.使用uc-devtools,点击进去空白,需要把设置中 选择本地UI资源

    3.如果都没有inspect,查看apk是否是debug的,查看apk是否打开webview调试模式

    需要开发加入代码:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)

    {

    WebView.setWebContentsDebuggingEnabled(true);

    }

    相关文章

      网友评论

          本文标题:context在混合应用中 上下文切换原生和webview

          本文链接:https://www.haomeiwen.com/subject/zogxjctx.html