用send_keys输入文本的方法


我们使用app时,输入文字都是调用软键盘。在自动化测试中当然也可以调用软键盘,但是由于输入法设计上的差异,有时候不能达到很好的效果。

例如,搜狗拼音输入法:

选择4-咖啡,然而多打几次,输入法就把“咖啡”当成高频词汇,有可能把这个词放在1或2或3,而这一点代码是很难捕捉到的。

因此,我们选择send_keys()绕过软键盘,用unicode编码方式来输入文字。


1. 在初始化时添加两行代码:

  • unicodeKeyboard是使用unicode编码方式发送字符串
  • resetKeyboard是将键盘隐藏起来

2. 在需要输入文字的地方这样使用:

self.driver.find_element_by_id("id/publish_title").send_keys("随便起名字")

3. 还原设置

打开手机设置,找到输入法设置选项,会发现默认的输入法被改成appium的输入法了,改成自己原来的输入法就好了。