appium 安卓滑块验证解决方案及踩坑

Posted 得体大队长

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了appium 安卓滑块验证解决方案及踩坑相关的知识,希望对你有一定的参考价值。

在做公司自动化时,遇到了公司集成了腾讯的滑块验证无法滑动的问题,踩坑如下

 问题1,此滑块页面为webview页面,是否需要切换(switch_to.frame)页面到webview里面?

不需要,web端需要是因为不切换frame就找不到元素,客户端可以通过按压的方法实现滑动

调试思路。

问题2:由于一开始按压拖动的方法没用过,于是先用tap点击右上角X去验证是否需要switch到webview。于是用tap点击X去看是否能点击到这个页面

把安卓的显示点操作反馈和指针位置都打开,这样用代码点击的时候就能看到轨迹。但是点击X的时候确实能看到在点击,却没有反应,待解决。

 问题3:长按拖拽的方法语法怎么使用

Action = TouchAction(driver)

Action.long_press(x=171,y=1455, duration=1000).move_to(x=300, y=1455).wait(1000).release().perform()

语法解释,appium里面TouchAction里有长按long_press方法和移动move_to方法,release释放手势操作。

长按的x,y填写滑块的坐标,move_to的x,y写滑块移动到缺口的坐标

问题4:报错[Deprecated] 'TouchAction' action is deprecated. Please use W3C actions instead.

执行时在IDE里报这个错,这个只是建议,可以忽略,一直在查这个报错的方法,引导去了错误的方向。而且没有开轨迹,没有加等待,导致其实这个方法执行了,因为没有加sleep,没有轨迹图,又加上这个报错,导致方向错了。最好把USB调试也打开,如下图

 

总结:遇到问题先不要慌,先检查手机的开发者选项等,然后开轨迹路线,方便根据轨迹调试。一行行分析代码,查看是否缺少了什么,从头到尾检查一遍,一段段一行行代码排查,比遇到问题就去查更有效率。

遇到问题用第一性原理去拆解,先解决滑动,然后在解决滑到准确的位置,其实这个安全验证会随机不同的位置也就4个,完全可以写个try的方法去尝试4遍。不要着急一步到位的解决方案,因为场景特殊可能百度不到,但是把步骤细分,就能容易查到。

以上是关于appium 安卓滑块验证解决方案及踩坑的主要内容,如果未能解决你的问题,请参考以下文章

Android全屏状态下弹出输入法adjustResize无效的修复方案及踩坑指南

Android全屏状态下弹出输入法adjustResize无效的修复方案及踩坑指南

element-ui Form表单校验小结及踩坑

Mysql数据唯一约束与唯一索引案例总结及踩坑记(含NULL值与唯一约束唯一索引的搭配使用)

Python打包工具Pyintealler打包py文件为windows exe文件过程及踩坑记录+实战例子

Jenkins pipeline的语法实例介绍及踩坑记录