## 本文主旨在于归纳总结设备与应用之间的问题,便于以后查阅!
###1.adb 安装应用时报错,INSTALL_FAILED_NO_MATCHING_ABIS 问题
问题原因:
代码不支持在 arm 架构的模拟器上安装此应用
解决方法:
方案一:在项目代码中添加如下代码
方案二:使用 genymotion 模拟器,安装对应版本的 Genymotion_ARM_Translation,即可成功安装并运行被测应用(实测目前 android8 可用)
Genymotion_ARM_Translation 地址:https://github.com/m9rco/Genymotion_ARM_Translation
###2.手机识别 webview 的问题
问题原因:
API23 以上系统的手机,需要在代码中打开 webview 调试开关,切换 context 才可以定位元素(注:没有打开也可以使用 driver.find_element_by_accessibility_id 方法进行定位)
解决方法:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
WebView.setWebContentsDebuggingEnabled(true);
}
API23 以下系统的手机,即使程序代码没有打开调试开关,模拟器或手机也会自动打开调试开关
###3.chrome 网址无法识别 webview(chrome://inspect/#devices)
问题原因:
1.需要能访问国外网站才可以访问;
2.chrome 浏览器 62 版本以后在此处有 bug
3.webview 的版本号需要使用对应版本的 chromedriver
解决方法:
针对于问题一:需要能访问国外网站
针对于问题二:使用 chrome62 版本的浏览器进行识别
针对于问题三:可以把所有的 chromedriver 放到一个文件路径下,然后在 capabilities 里使用chromedriverExecutableDir关键字,appium 会自动到该目录下匹配到合适的 chromedriver