解决办法:在某些手机上有个安全选项,需要在开发者选项->安全设置(允许模拟点击),打开开关
各位大神求助
环境:appium v1.6.4 + android 6.0.1 +windows
问题:执行 click 操作的时候日志显示点击成功,但是手机端界面是没有发生界面跳转的,日志见下图
另外:已经验证控件已经出现在了界面上(is_displayed 返回 true),在另外一台小米上也是,其他的几台手机都是 OK 的
click 执行的时候是不是界面上有 toast? 加个 wait 等 toast 消失试试?
你确定你点击的控件查找是正确的吗?看起来像你找到了一个不可点击的元素,所以 log 里会有点击的操作记录,但是点击这个元素并不会有任何后续的反应
确定是正确的(1)我用 uiautomatorviewer.bat 看了控件是 button(2)同样的脚本我用另外的手机是 ok 的
应该是没有权限
我也觉得新版本有问题,但是我是 1.6.5 跟 iOS,以前的版本点击不可见元素是会抛出异常的,现在返回 None
刚试了,adb shell getevent 命令没有输出,说明没有点击,可是我看了 appium 的返回也没有问题啊,现在是完全没有思路
可是我出现的问题是这个元素是可见的,self.driver.find_element_by_id('XXXXXX').is_displayed() 返回的是 true
通过 element.location 获得坐标值是:location: {'x': 467, 'y': 903}
通过 uiautomatorviewer.bat 查看的坐标值也是:
保持一致应该是没错的吧
报错:Command returned error:java.lang.SecurityException: Injecting to another application requires INJECT_EVENTS permission
而且我在被测 app 里加入 INJECT_EVENTS 还是提示报错
解决了,需要打开开发者模式里面的安全设置,允许模拟点击
妈蛋!!我也中招了,折腾一晚上最后进论坛才发现是因为这个!!!