什么是上下文?
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);
}
网友评论