同样的错误信息,我这边问题解决了,发在这里看有没有帮助。
LZ 是做微信公众号的测试是吧?微信的版本是多少,已经开启 X5 的 debug 页面了是吧?
确定这些都没问题的话,继续往下。最后发现是 chromedriver 版本问题导致的,折腾了一周多....
关键字:不要相信 Android 系统显示的 webview 版本,通过 chrome://inspect/ 来查看设备的 chrome 版本
确定后到https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/web/chromedriver.md 查看对应的 chromedriver 版本,下一个就好了
论坛确实氛围挺好的,提出的问题很多同学解答,就顺便把结果写在这里了,遇到同样问题的同学可以参考一下
等待 uiautomator2 的测试结果
@Lihuazhang @Fengyongming0311 @qwerty 非常感谢,问题的原因查到了,总结了一下放到了帖子结尾
安全防护的内容我不太了解,不知道有没有同学可以研究一下,另外目前发现无法定位元素的页面 只有这一个金额确认的页面,连需要输入支付密码的支付页面 都可以正常识别呢
@seveniruby 冒昧的打扰下大佬,能给一点建议么,感激不尽。好困惑
我这边试着运行了一下,这段代码只打印出了一个元素。
你那边可以确认 输出的所有元素就是当前测试页面的所有元素是么
另外 我这边用 driver.page_source 输出的内容 竟然不是当前页面,好奇怪
这个问题我也会继续查找,估计短期内没什么眉目
原来如此,继续求答案
感谢大佬回复。
晚上一直在搜这个问题,顺便问一下,这个 这个支付页面是一个新的 activity,打印 current_activity 的时候 发现是一个新的值,跟这个有没有关系? appium 是否会自动识别这个新的 activity 中的元素呢
@Lihuazhang 冒昧的问下大佬,可否指点一下,谢谢啦
坐标点击可以,目前的折中方案就是先用坐标点击。主要是想了解一下为什么会有这个问题,以便后续如果不是点击,而是获取页面某个元素的时候,还是会遇到这个问题
感谢回复,我也怀疑无法定位元素是因为 比如有多个窗口或者 UI 弹窗之类。
今天继续研究了下,发现有个很奇怪的现象:
打开这个支付界面的时候,通过 self.driver.current_context 输出的结果确实是 NATIVE_APP,但是 通过 print self.driver.page_source
输出的结果 竟然是 Android 屏幕首页的信息(没错,就是按 Home 键之后的首页),
但是在 微信主界面输出 print self.driver.page_source 结果是正常的。
想试着切换 handle,发现 native app 似乎不支持这个方法。
感觉有点像窗口切换的问题,不知道 native app 这边要如何切换 handle 呢,或者有没有其他可能的原因呢?
对,‘立即支付’ 按键的定位
self.driver.find_element_by_xpath('//*[@text="立即支付"]').click()
self.driver.find_element_by_android_uiautomator('new UiSelector().text("立即支付")').click()
两种方式试了都不行