笔记:测试Appium的driver.send_keys方法,实际执行失败,代码却没报错,发现EdiText控件与兄弟控件在视界上有重叠

在使用Appium进行自动化测试时,发现在输入文本到EdiText控件时,由于控件与旁边的ImageButton重叠,导致实际上点击到了ImageButton,使得程序跳转。尝试在send_keys前点击或长按EditText无效。解决方案是通过ADBKeyBoard模拟输入,安装ADBKeyBoard.apk并设置为默认键盘,用os.system调用adb发送文本命令。
摘要由CSDN通过智能技术生成

用酷狗音乐测试一下Appium的driver.send_keys方法。

用例:在搜索框输入中文 '神话',点击搜索。

实际执行失败,发现执行过程中,程序会先点击一下旁边的麦克风图标(ImageButton),酷狗界面跳转“听歌识曲”。

再执行一次测试代码,还是跳转“听歌识曲”,本人不死心的赶紧手动点击返回按钮,程序再次点击ImageButton,跳转“听歌识曲”,我再点回去,这下程序如实输入设定好的字符串╮(╯▽╰)╭,但实际测试,人怎么可能实时看着用例执行。

回头仔细看Uiautomator分析的结果,发现EdiText与兄弟控件ImageButton在视界上有重叠,估计是点击EditText,却实际在ImageButton上点出效果来了。

想办法规避一下,猜测可能跟光标、聚焦有关,尝试在执行send_Keys之前,执行点击或长按EditText操作。执行后,看效果是长按或者点在EditText中间了,但没鬼用,后续send_keys方法依旧会点一下,点在EditText偏左侧,也就是ImageButton上。

分析一下源代码?只看到Command类execute的底层命令这一层,

要这样,我不如调用adb shell intput text好了,这个比较熟,但它不支持中文。

ADBKeyBoard参考:https://blog.csdn.net/slimboy123/article/details/54140029

a

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值