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

简介

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

你能走多远,取决于你填坑能力有多强

微博上看到一张图:python

 

01android

在你的计划中,将来目标是清晰可见的,中间一片坦途,只须要稍微用点力,就能够顺利达成。web

但实际上呢?服务器

风雨,陡壁,深渊……一路艰难险阻,处处都是坑,最关键是,目之所及全是困难,连目标的影子都看不见!微信

能够说很是形象了!咱们的生活不就是这样吗?app

成长的路上,老是充满了各类“坑”,而你能走多远,取决于你“填坑”的能力有多强。工具

02学习

“为何你老是下班这么晚?”测试

“由于要改的Bug太多了啊。”

“那为何跟你同组的其余同事很早就下班了?就你一我的老是走不了?”

“没办法啊,太复杂的Bug他们改不了,只能我去解决,否则为何我月薪2万,他们只有1万?”

“……好吧。”

没错,工做中就是这样。

遇到问题,能解决问题的那我的,永远是最被须要的人,而由于被须要,不可或缺,因此才能拿到高薪,得到更好的我的发展。

改不了的Bug,搞不定的客户,谈不下来的项目……咱们习惯性求助于咱们的上级领导,而这彷佛也解释了,为何他是上级领导?由于他能解决咱们解决不了的问题。

在职场,你的核心竞争力,在于你“填坑”的能力,是否能填别人填不了的坑。

  好了,故事就讲到这里吧。言归正传,本篇就由宏哥把前边留有悬念的中文输入问题的坑,带着小伙伴们一块儿把这个坑填平它,KO它。

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

一、定位搜索

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

 

 

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

 

 

三、实例代码

 

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

二、运行脚本

一、首先要确认手机上的输入法是用的什么输入法,若是默认是中文的输入法,启动后会出现下面状况,没法输入成功

    二、因而能够先把手机上的输入法改为英文的状态,这样就能够输入英文字符串了。那么问题来了,若是想输入中文的字符串呢?如何解决。。。

三、屏蔽软键盘

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

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

 

 

 

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

四、resetKeyboard是将键盘隐藏起来

四、输入中文字符

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

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

 

五、参考代码

# 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"北京-宏哥")

六、小结

一、若是在输入中文的时候,手机遇到显示中文字符为乱码时:

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


三、还原设置

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

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

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

  您的确定就是我进步的动力。支持宏哥的朋友们和宏哥的宏粉记得点波 推荐 哦!!!

我的公众号

微信群

原文出处:https://www.cnblogs.com/du-hong/p/11131802.html

相关文章
相关标签/搜索