Appium 在使用 element.clean () 的时候,不同的机型有不同的清除方式

重来看雨 · 2017年03月16日 · 最后由 重来看雨 回复于 2017年03月16日 · 1982 次阅读

说明

在做并发测试的时候,一个测试报告全部 pass,另一测试报告有 fail 和 error
原来,element.clean() 的时候,不同的机型有不同的清除方式,还有部分机器键盘原因

1


该方式是 金立 F103 机型,Android 5.0 。如图所示,会全选输入框的内容然后再删除

2


该方式是 华为荣耀 6X,Android 6.0 。如图所示,因为 clean() 会用一个点击操作,其光标在第一位,输入框内容无法清除,再输入字符了。造成 case fail
请问社区各位,有啥好方法解决这类因为不同机型造成的影响。

3

华为还有一个神奇的地方,就算使用了 appium 的输入法,点击密码输入框,还会弹出键盘。。


因为弹出了键盘,把 提交 按钮遮住了。。造成 case error。。
这个解决办法在设置 -- 高级设置 -- 语言和输入法,把 安全输入 关闭

共收到 3 条回复 时间 点赞

clean 这个方法是不通用。我的办法是先获取输入框里面的字符数,点击输入框,然后发送相应数量的 Backspace 和 Delete 按钮,确保光标无论是在字符的前面还是后面都可以把对应长度的字符给删掉

少陵生 回复

那个是密码输入框。。没有 text..就没有字符数这个说法了。。Backspace 这个怎么发送。。

少陵生 回复

找到解决办法了。。谢谢。。虽然不能 get text 获取字符数,但那个密码我还是知道长度的。。

el = self.by_id(self.driver,self.ele[71])      #密码输入框
el.click()
for i in range(10):
    self.driver.keyevent(123)
    self.driver.keyevent(67)

点击了输入框后,把光标移动到最后,然后删除

重来看雨 关闭了讨论 03月16日 17:53
重来看雨 重新开启了讨论 03月16日 17:53
重来看雨 关闭了讨论 03月16日 17:54
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册