当我们想send_keys发送中文,可能会遇到下面问题,看下图
为什么不能输入中文?我们先来分析一下
1. 定位是否正确,能否获取该对象。可以不发送send_keys,打印下该对象,观察下python的日志
可以去查看appium的日志
2.定位没有问题,我们尝试输入英文是否可以:如果可以,说明send_keys是没有问题,那就是中文的问题
中文问题解决
1. 可以在send_keys里面的字符加上u ,尝试是否可以成功,例如
2. 还不行,我们在试着先英文后汉字
3.还不行,那我们去看下我们测试的手机应用,确认一下默认的输入法是什么语言,如果英文可以,就默认的输入法应该英文的,所以猜测是默认的输入法影响到我们中文的输入,那我们可以修改默认输入法为中文,就可以了。但是问题来了,假如输入英文会不会就有问题了,所以不能这么修改,我们需要屏蔽 输入法的软键盘,类似selenium实现web自动化时,通过sendkeys绕过键盘,接下来看第4步
4.appium其实已经帮助我们解决了这个问题,我们只需要在Desired Capabilities参数配置中设置参数就可以了,不懂Desired Capabilities,不要紧,我们来一起看下官方的中文文档:http://appium.io/docs/cn/writing-running-appium/caps/index.html
我们主要使用2个参数就可以解决这个问题,这个参数是什么呢,来往下看
unicodeKeyboard | 使用 Unicode 输入法。 默认值为 false | true 或false |
resetKeyboard | 在设定了 unicodeKeyboard 关键字的 Unicode 测试结束后,重置输入法到原有状态。如果单独使用,将会被忽略。默认值为 false | true 或false |
5.添加完成了吧,那我们来运行一下,看中文输入成功了