呐。。。最近遇到问题了 ,需要使用混合应用 发现网址齐全的解决方式好少啊。。
整理了下 希望能有帮助!!!!
print self.driver.contexts
[u'NATIVE_APP']
打印出来的 context 只是包含了 NATIVE_APP,并没有网上很多人说的包含了 WEB_VIEW 的 context。
For a real device you need to have “setWebContentsDebuggingEnabled” in the web view. Without it the web view is not exposed to automation tools
测试 webview 的话,需要获取 web 权限
被测试应用代码初始化中增加如下代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
WebView.setWebContentsDebuggingEnabled(true);
}
再次打印就可以看到 webview 名称了
print self.driver.contexts
[u'NATIVE_APP', u'WEBVIEW_com.yonglibao.android.debug']
方式一:使用 appium 提供的 api
self.driver.switch_to.context(self.driver.contexts[-1])
方式二:直接执行
self.driver.execute(MobileCommand.SWITCH_TO_CONTEXT, {"name": self.driver.contexts[-1]})
开启 “指针位置” 后,使用 swipe 操作滑动,可以看到滑动痕迹,却没有实际产生滑动操作,如下:
os.popen('adb shell input swipe 800 800 800 100')
其实可以通过 xpath 全盘解析,不需要滑动