本文来讨论一个无法绕过的问题,就是app内webview页面的元素定位。现在做过app测试的朋友就知道,app里面页面有原生和webview的,或者H5的。这个问题也困扰我很久了,近期才解决,和大家分享下。
目前有几种说法:
1.通过Chrome浏览器,这种可以直接pass。
2.通过uiautomatorviewer 定位,这个只能定位到一个的块。执行脚本无法定位的。
3.通过APP打包设置,SET属性值,因为开发没给我打过包。这个也没验证过。
4.webview切换,亲测不可用。
//判断是否有 WEBVIEW
Set<String> contextNames = driver.getContextHandles();
for (String contextName : contextNames) {
System.out.println(contextName);
if (contextName.contains("WEBVIEW")){
driver.context(contextName);
}else
{
System.out.println("no WEBVIEW");
}
}
重点来了,亲测可用。
1.设置手机的talkback功能 设置-辅助设置-talkback 开启。手机没有这个功能可以再应用商店下一个安装完成。再次进入设置开启就可以了。
2.设置好以后再使用uiautomatorviewer 截屏 获取定位的元素 内嵌的webview 和 h5 都可以定位到了。
说说副作用:
1.可能调不起来键盘,那就同事 按住“关机键”,音量键 “—”,“ +” 这三个键 就会调起关闭talkback 功能,选择关闭就可以了
2.开始talkback后,平时的单击应该用双击操作,滑动需要2个手指。选择还是单击。
如果这篇文章对您有帮助,并解决了您的问题,打赏一下作者吧~3Q