Appium appium sendkeys 输入数字丢失问题

Doshrik · 2018年05月28日 · 最后由 Doshrik 回复于 2020年07月21日 · 3409 次阅读
1.在网上查找学习资料 python 据多,本人用 Java 据多,在网上查找学习资料非常之少。
2.开这个贴子的原因主要是想看一下大家使用两种语言的情况那种据多,那种语言坑相对少一些?
3.由于自已学习里边坑特别的多,有些问题在此也列出些,由于也是举步为坚,也加了一些学习的群,真正能帮上的少之又少。
4.目前遇到的问题:
  • android adv 创建模拟器,启动黑屏问题、查询资料为官方模拟器不稳,未测试不可知,有大神请告知,感谢。
  • [HTTP] {"type":"implicit","ms":300000} [W3C] Bad parameters: BadParametersError: Parameters were - incorrect. We wanted "W3C protocol expects any of script, pageLoad or implicit to be set" and you sent {"type":"implicit","ms":300000}、设置等待时间,不知道为何一直为不生效状态(三种,Thread.sleep、隐式、显式设置)显式设置,APP 未打开已发现元素、但是操作时却出错。
  • 目前测试 APP 只是在写流程,是现状就是如此,还是我还没有入门,希望有大神能够帮我解惑,在此感谢! 注:如 shell 脚本一样。。。
  • 测试 APP 虽说是自动化、在判断结果的时候,只要不报错就是成功的?还是需要加上断言? 注:新手见谅。
  • 在测试中,输入文本信息手机号(sendkeys)时,总会随机少那么几位数,看 appium 日志,数据是对的,查询资料有的设置等待时间可以长些,试过没解决。。有的说键盘输入法问题,设置 unicode 键盘输入法,问题依然存在。
5.以上为目前遇到的问题,希望有大神能够帮忙解决这几个疑惑和问题,感激不尽!
最佳回复

我曾经也遇到过输入号码随机缺少的问题,当时是输入银行卡,不仅会随机输少,有时候会重叠输入,怀疑是控件问题,只能自己写个函数针对性输入。函数思路:分解号码,使用 driver.sendkeyevent 逐个输入,每输入一个号码,记录已输入的长度 len,获取当前文本字符长度与记录的长度比较,相等:继续输入下一个数字;大于:回删到 len-1,重输;小于,重输。

共收到 17 条回复 时间 点赞
  1. 可以换 Genymotion 试试,稳定性好很多
  2. 设置等待时间,用 AppiumFieldDecorator 或者 driver.manage().timeouts().implicitlyWait 来设置,2 种使用场景不一样
  3. 写测试用例一定要有校验,只是校验可以做得宽泛一些,比如页面之内有特定的元素、文本等待
  4. 手机号丢失,估计是和手机号码会格式化有关系,需要一个个数字输入,可以使用 pressKeyCode 方法

用谷歌输入法试试!!

少陵生 回复

首先非常感谢你帮我解答问题,其次,我会再试一下,你给出的建议,后续再回复实验结果。

sendkeys 输入数字丢失问题,依然无解,有大神,能帮帮忙吗?

求助啊。。。。。。。。。。

我也遇到过~~我机智改成了发送字母规避了这个问题...😂

Joo 回复

发送字母?我要输入数字换字母不合我的需求额?

我曾经也遇到过输入号码随机缺少的问题,当时是输入银行卡,不仅会随机输少,有时候会重叠输入,怀疑是控件问题,只能自己写个函数针对性输入。函数思路:分解号码,使用 driver.sendkeyevent 逐个输入,每输入一个号码,记录已输入的长度 len,获取当前文本字符长度与记录的长度比较,相等:继续输入下一个数字;大于:回删到 len-1,重输;小于,重输。

Look毛青 回复

重复循环输入倒是能解决这个问题,感觉挺耗资源。while(...){},加个判断,只是需要多次输入,不知道有没更好的办法解决。

Doshrik 回复

当初也是想到可能影响性能问题,实现后效果还是不错的

Look毛青 回复

感觉坑比较多,,,之前好好代码那也没动,突然定位不到元素了(用 uiautomatorview 定位的到)。。。程序识别不到,重新换了个工具 appium desktop 重新定位后,才正常访问了。。。

Doshrik 回复

你是不是回复错地方了~~

输入丢失数字这个,真的!一开始好好的,后面登陆输入手机号码的时候,每次都丢那么几位。。。。。

切换输入法即可,安装搜狗输入法。
输入前切换搜狗输入法:driver.activate_ime_engine("com.baidu.input_huawei/.ImeService")
输入后切回自带输入法:driver.activate_ime_engine("io.appium.android.ime/.UnicodeIME")
输入后一定要且回来,不然可能影响后面的输入,主要是会有一些弹窗

我也遇到了丢失数字的问题,各位大大怎么解决的,好像也不是等待几秒能解决的。

楼主这个问题解决了吗

1.输入数字问题,发现 APP 把手机号格式化了的原因,按照格式 send_keys 就可以了。
2.不行的话,目前还是循环解决这问题

Doshrik 关闭了讨论 07月21日 11:17
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册