Appium Appium 的 ios 中 webview 问题

yee · 2020年11月24日 · 最后由 yee 回复于 2020年11月30日 · 3374 次阅读

ios 中写 appium 脚本遇到几个问题想请教下,虽然不影响我测试,但我感觉不符合我的预期,现象如下
1.我用桌面版本的 appium 定位元素,如下图所示,是一个 webview,我可以展开这个 webview,看到里面的内容,而且我可以不用切入 webview,直接用类似 findbyAccessibilityid 等方法操作元素

2.如下图所示,其实是同一个页面的同一个 webview,只是我加载了更多数据(这个页面展示的数据是一个有分页功能的接口返回的),使用工具找到 webview,但是数据量多的时候就无法展开这个 view 了,令人费解的是,我用 driver.context 去看,居然只有 native_app,此处没有 webview,奇怪了

综上:
我理解就 ios 应该类似安卓,一个 webview 用工具应该看不到里面的元素的,可以借助 chrome 的 inspect 进入 webview 定位元素,然而我这个 app 即使是 webview 也可以通过工具看到里面的元素,并且可以通过 ios 的 native 的 findby 方法获取,这是为什么?但是有时候同一个页面根据数据量的不同,还会出现有的时候能定位出元素(可以展开 webview),有的时候只能定位出最外面的 webview(无法展开)的情况,费解!

论坛里的大神有没有遇到过此类情况,忘解答,谢谢!

共收到 5 条回复 时间 点赞

https://testerhome.com/topics/25388,可以参考一下这个解决方案,原理是相通的。

通用->辅助功能->语音 开启

yee #3 · 2020年11月26日 Author
少策 回复

我这个地方并不是永久找不到元素,就是数据少的时候可以找到元素,但是我翻页操作后就没有了,我只能怀疑是 appium 不兼容的 bug 了

yee 回复

好吧,没有帮到你

yee #5 · 2020年11月30日 Author

https://github.com/appium/appium/issues/14825
这个可能是解决的方法,但是我貌似我没看懂,“Use "accessible={false}" for the parent container view..” 这句话什么意思?是说开发的包要这样配,还是什么。
“50 is the default value set to prevent endless loops. You could customize it by changing the snapshotMaxDepth setting”
这个 snapshotMaxDepth 是什么东西?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册