默认用 UiautomatorViewer.bat 查看页面控件时是看不到 webview 页面的内容的
执行以下命令后再 Ctrl C 终止:
adb shell uiautomator runtest AppiumBootstrap.jar -c io.appium.android.bootstrap.Bootstrap -e disableAndroidWatchers false
注意:经测试用此方法只对当前页面有效
此方法是发现 Appium 启动的应用是可以看到 webview 里的内容的,查看日志发现其执行的命令为:
["-P",5037,"-s","APU7N16309003842","shell","uiautomator","runtest","AppiumBootstrap.jar","-c","io.appium.android.bootstrap.Bootstrap","-e","pkg","com.tencent.mm","-e","disableAndroidWatchers",false,"-e","acceptSslCerts",false]
参考网址:https://tieba.baidu.com/p/4540154719
Android 系统一般自带一个 TalkeBack 功能。但这里千万要注意:打开之后整个系统的操作都变得不同了!!滑动界面需要两个手指,单击变成双击。打开之后用 UiAutomatorViewer 获取 webview 界面的内容,你就会发现原来 webview 里面获取不到的 ui 元素,现在已经可以可以获取到了。即使现在你关掉 TalkBack,也能获取到,除非重启手机才会回到不能获取的状态,所以开启后我们可以立即关闭,以方便操作。
功能路径:
原生系统:设置 – 辅助功能 (Accessibility) – TalkBack
华为 EMUI 系统:设置 – 高级设置 – 辅助功能 – TalkBack
注意:
有些手机的系统对 TalkBack 的名称和路径都定制过,根据实际情况查找,实在找不到,可以网上下载个 apk 进行安装
a . 用 Chrome 浏览器访问网址 chrome://inspect/#devices 后,你会看到如下界面
b. 点击 inspect 连接后你会看到如下界面
优点:
双向实时通讯:
类似微信公众号里连续的 webview 界面,手机页面切换后,PC 端会实时刷新;在 PC 端点击屏幕上对应的按钮或连接,手机上也会触发生效;
定位元素:
定位到的元素是 H5 的 html 页面格式展现,可看到更详细的信息
控制台:
要使用 js 操作,可直接在控制台调试,例如 JS 勾选复选框:
IJavaScriptExecutor = (IJavaScriptExecutor)driver;
js.ExecuteScript("document.getElementsByName('checkboxValue')[0].click()");
可先在控制台输入以下命令进行调试:
document.getElementsByName('checkboxValue')[0].click()
NetWork:
可以抓取 webview 页面的请求和响应数据
查看网页端代码: