首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
30 篇文章
1
Appium+python自动化(一)- 环境搭建—上(超详解)
2
Appium+python自动化(二)- 环境搭建—下(超详解)
3
Appium+python自动化(三)- SDK Manager(超详解)
4
Appium+python自动化(五)- 模拟器(超详解)
5
Appium+python自动化(六)- 连接模拟器并启动淘宝APP(超详解)
6
Appium+python自动化(七)- 初识琵琶女Appium(千呼万唤始出来,犹抱琵琶半遮面)- 上(超详解)
7
Appium+python自动化(八)- 初识琵琶女Appium(千呼万唤始出来,犹抱琵琶半遮面)- 下(超详解)
8
Appium+python自动化(九)- 定位元素工具(义结金兰的两位异性兄弟)(超详解)
9
Appium+python自动化(十)- 元素定位秘籍助你打通任督二脉 - 上卷(超详解)
10
Appium+python自动化(十一)- 元素定位秘籍助你打通任督二脉 - 下卷(超详解)
11
Appium+python自动化(十二)- Android UIAutomator终极定位凶器(超详解)
12
Appium+python自动化(十三)- 输入中文 - 一次填坑记(超详解)
13
Appium+python自动化(十四)- 与Capability完美懈垢之解读(超详解)
14
Appium+python自动化(十五)- Android 这些基础知识,你知多少???(超详解)
15
Appium+python自动化(十六)- ADB命令,知否知否,应是必知必会(超详解)
16
Appium+python自动化(十七)- 你难道是猴哥失散多年的混血弟弟还是妹妹???- Monkey简介之开山篇(超详解)
17
Appium+python自动化(二十一)- 让猴子按你指令大闹手机 MonkeyScript(超详解)
18
Appium+python自动化(二十二)- 三个臭皮匠助你成就一番霸业-控件坐标获取
19
Appium+python自动化(二十三)- 真假美猴王Monkeyrunner与Monkey傻傻的分不清楚
20
Appium+python自动化(二十四)- 白素贞千年等一回许仙 - 元素等待(超详解)
21
Appium+python自动化(二十五)- 那些让人抓耳挠腮、揪头发和掉头发的事 - 获取控件ID(超详解)
22
Appium+python自动化(二十六)- 烟花一瞬,昙花一现 -Toast提示(超详解)
23
Appium+python自动化(二十八)- 滑呀滑,滑到奈何桥喝碗孟婆汤 - 高级滑动(超详解)
24
Appium+python自动化(三十三)- 本地调试测试代码,远程控制测试环境-Remote(超详解)
25
Appium+python自动化(三十四)- 有图有真相,很美很精彩 - 屏幕截图和Android APP类型简介(超详解)
26
Appium+python自动化(三十五)- 命令启动appium之 appium服务命令行参数(超详解)
27
Appium+python自动化(三十九)-Appium自动化测试框架综合实践 - 代码实现(超详解)
28
Appium+python自动化(四十)-Appium自动化测试框架综合实践 - 代码实现(超详解)
29
Appium+python自动化(四十一)-Appium自动化测试框架综合实践 - 即将落下帷幕
30
Appium+python自动化(四十二)- 寿终正寝完结篇 - 结尾有惊喜,过时不候(超详解)

Appium+python自动化(十三)- 输入中文 - 一次填坑记(超详解)

简介

无论你在哪里,在做什么都会遇到很多坑,这些坑有些事别人挖的,有些是自己挖的。别人挖的叫坑人,自己挖的叫自杀,儿子挖的叫坑爹。因此在做app自动化道路上也不会是一帆风顺的,你会踩很多坑,这些坑和你就是你死我活的节奏,不是坑把你埋了,就是你把坑填了。由于咱们都是黄皮肤的中国人用的大部分都是中文的app,而人家老外都是白皮肤蓝眼睛,用的是英文的APP,人家这个问题可以忽略。我们却不可以的,必须面对的。所以首先宏哥要带小伙伴们解决中文输入的问题!

本篇就由宏哥把前边留有悬念的中文输入问题的坑,带着小伙伴们一起把这个坑填平它,KO它。

  宏哥思路:宏哥将会通过屏蔽软键盘,绕过手机的软键盘方法,解决中文输入的问题。

1、定位搜索

1、打开淘宝点搜索按钮,进入到搜索页面

2、然后定位到搜索框后用sendkeys方法输入“hongge”,这里定位元素用第四篇讲的uiautomatorviewer工具就可以了

3、实例代码

4、运行后夜神模拟器、appium、代码的运行过程如下(拼音或者英文),请小伙伴们和宏哥一起仔细看是不是搜索框输入了:hongge 拼音

5、参考代码

代码语言:javascript
复制
 1 # coding=utf-8
 2 # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
 3 
 4 # 2.注释:包括记录创建时间,创建人,项目名称。
 5 '''
 6 Created on 2019-7-04
 7 @author: 北京-宏哥   QQ交流群:707699217
 8 Project:学习和使用appium自动化测试-输入中文 - 一次填坑记
 9 '''
10 # 3.导入模块
11 from appium import webdriver
12 import time
13 desired_caps = {}
14 desired_caps['platformName'] = 'Android'   #android的apk还是IOS的ipa
15 desired_caps['platformVersion'] = '8.0'  #android系统的版本号
16 desired_caps['deviceName'] = '127.0.0.1:62001'    #手机设备名称,通过adb devices  查看
17 desired_caps['appPackage'] = 'com.taobao.taobao'  #apk的包名
18 desired_caps['appActivity'] = 'com.taobao.tao.welcome.Welcome'  #apk的launcherActivity
19 #desired_caps['unicodeKeyboard'] = True   #使用unicodeKeyboard的编码方式来发送字符串
20 #desired_caps['resetKeyboard'] = True   #将键盘给隐藏起来
21 driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) #启动服务器地址,后面跟的是手机信息
22 # 休眠五秒等待页面加载完成
23 time.sleep(5)
24 driver.find_element_by_id("com.taobao.taobao:id/home_searchedit").click()
25 time.sleep(3)
26 driver.find_element_by_id("com.taobao.taobao:id/searchEdit").click()
27 
28 driver.find_element_by_id("com.taobao.taobao:id/searchEdit").send_keys(u"hongge")

2、运行脚本

1、首先要确认手机上的输入法是用的什么输入法,如果默认是中文的输入法,启动后会出现下面情况,无法输入成功

2、于是可以先把手机上的输入法改成英文的状态,这样就可以输入英文字符串了。那么问题来了,如果想输入中文的字符串呢?如何解决。。。

3、屏蔽软键盘

1、通过前面的操作,大概可以知道,在APP里面输入字符串是调用的软键盘输入的,有没办法像selenium做web自动化时候一样,直接sendkeys绕过键盘输入呢?

2、于是可以想办法屏蔽软键盘,只需在desired_caps{}设置里面加两个参数(注意了,注意力,注意力,能不能填坑就看这里啊!!!),如果直接跟随宏哥的小伙伴们直接把注释去掉了,就可以。

3、unicodeKeyboard是使用unicode编码方式发送字符串

4、resetKeyboard是将键盘隐藏起来

4、输入中文字符

1、将上面代码改成输入中文u“北京-宏哥”,然后运行脚本,在手机上查看结果。(python2中文前面要加个u,python3的可以忽略)

2、运行后夜神模拟器、appium、代码的运行过程如下:请小伙伴们和宏哥一起仔细看是不是搜索框输入了:北京-宏哥 中文汉字

5、参考代码

代码语言:javascript
复制
# coding=utf-8
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2019-7-04
@author: 北京-宏哥   QQ交流群:707699217
Project:学习和使用appium自动化测试-输入中文 - 一次填坑记
'''
# 3.导入模块
from appium import webdriver
import time
desired_caps = {}
desired_caps['platformName'] = 'Android'   #android的apk还是IOS的ipa
desired_caps['platformVersion'] = '8.0'  #android系统的版本号
desired_caps['deviceName'] = '127.0.0.1:62001'    #手机设备名称,通过adb devices  查看
desired_caps['appPackage'] = 'com.taobao.taobao'  #apk的包名
desired_caps['appActivity'] = 'com.taobao.tao.welcome.Welcome'  #apk的launcherActivity
desired_caps['unicodeKeyboard'] = True   #使用unicodeKeyboard的编码方式来发送字符串
desired_caps['resetKeyboard'] = True   #将键盘给隐藏起来
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) #启动服务器地址,后面跟的是手机信息
# 休眠五秒等待页面加载完成
time.sleep(5)
driver.find_element_by_id("com.taobao.taobao:id/home_searchedit").click()
time.sleep(3)
driver.find_element_by_id("com.taobao.taobao:id/searchEdit").click()

driver.find_element_by_id("com.taobao.taobao:id/searchEdit").send_keys(u"北京-宏哥")

6、小结

1、如果在输入中文的时候,手机遇到显示中文字符为乱码时:

2、解决办法:前面加上“#-*-coding:gb18030-*-” 如下图所示:

3、还原设置

(1)当运行上面的脚本后,发现手动去输入时候,无法调出软键盘了,如何恢复呢?

(2)打开手机设置,找到输入法设置选项,会发现默认的输入法被改成appium的输入法了。所以只需把这里的设置,恢复成原来输入法就OK拉。

  在实现目标的路上,遇到坑很正常,比临坑痛哭更重要的是,学会把坑填好,继续走下去。最后祝各位小伙伴们填坑顺利,人人都是填坑小能手!!!

下一篇
举报
领券