• #4 楼 @lihuazhang

    该解决方案在 mac 上使用 Appium1.5.3 验证成功,成功打印出来了 WEBVIEW: NATIVE_APP,CHROMIUM ,切换到 CHROMIUM 成功后用 xpath 成功定位元素,不同的手机上打印出的名字可能不一样。

    非常感谢@lihuazhang 。小菜鸟遇到疑难杂症的心情是崩溃的,第一次遇到这个问题是两个月前了。


    遇到 Hybrid 应用怎么做:

    1.先确定开发在测试版本的包里面是否有加调试代码 (一般都有加):if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { WebView.setWebContentsDebuggingEnabled(true);}

    如何确定有加,连接好电脑打开应用并停留在 H5 页面,在 Chrome 浏览器中输入 chrome://inspect,按回车会显示设备名字,并且会显示安装包名。点 inspect 就会在 Chrome 浏览器显示 App 的页面,就可以在浏览器上定位元素了。
    注意:这一步 Chrome 浏览器要 ***,不然打不开

    2.写几条简单的操作步骤进入到 html5 页面,打印 webview: print driver.contexts,如果除了 NATIVE_APP 还有一个的话那说明能切换 webview。切换 webview:driver.switch_to.context('打印出来 webview 名字'),

    这样,切换 webview 之后,对第一步中找到元素的 xpth,css 进行定位操作。。

  • #12 楼 @yyswly windows 上解决方案求分享

  • #3 楼 @chenhengjie123 不清楚 appium 的结构,原理。改的也就不对

  • #7 楼 @wang04170 只有 mac 有 1.5.3 版本的 Appium,Android 最高只到 1.4.16,mac 上的 android 环境没装,正在研究@chenhengjie 给的 windows 解决方案,你解决过这样的问题?能留个 Q 么