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

简介

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

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

微博上看到一张图:

01

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

但实际上呢?

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

可以说非常形象了!我们的生活不就是这样吗?

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

02

“为什么你总是下班这么晚?”

“因为要改的Bug太多了啊。”

“那为什么跟你同组的其他同事很早就下班了?就你一个人总是走不了?”

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

“……好吧。”

没错,工作中就是这样。

遇到问题,能解决问题的那个人,永远是最被需要的人,而因为被需要,不可或缺,所以才能拿到高薪,获得更好的个人发展。

改不了的Bug,搞不定的客户,谈不下来的项目……我们习惯性求助于我们的上级领导,而这似乎也解释了,为什么他是上级领导?因为他能解决我们解决不了的问题。

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

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

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

1、定位搜索

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

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

3、实例代码

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

5、参考代码

 1 # coding=utf-8
 2 # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
 3 
 4 # 2.注释:包括记录创建时间,创建人,项目名称。
 5 '''
 6 Created on 2019-7-04
 7 @author: 潇潇说测试
 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、参考代码

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

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2019-7-04
@author: 潇潇说测试
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拉。

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


              【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战


四、App自动化项目实战

五、一线大厂简历


六、测试开发DevOps体系

七、常用自动化测试工具


八、JMeter性能测试

九、总结(尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个扩展提供了一个易于访问的Unicode键盘,使它更容易创建自己的Unicode表情符号。 新网站! http://ninjasoftware.enjin.com/如何使用保存功能:要将表情符号添加到已保存表情符号列表中,请单击“保存表情符号”按钮(注意:这实际上并不存储它们),然后将其全部存储保存的表情符号以供将来使用,请单击“存储表情”按钮。 *请阅读*您不能保存带有空格的表情符号,例如,不能保存以下内容:(o_o),但是可以保存以下内容:(o_o)每当使用Unicode键盘时,请确保单击“加载表情符号”按钮,然后再保存自定义表情,否则它将覆盖以前保存的表情。 我知道这有点痛苦,但是我还没有找到其他方法。 曾经见过有人用那些陌生的角色键入那些更详细的笑脸和翻转表格的模因,并希望能够轻松地制作自己的吗? 该扩展提供了一种简单,易于使用的方式来创建自己的Unicode表情符号,然后您可以将其简单地复制粘贴到您的帖子中,从而在文本中提供更详细的表达方式! 新增功能:-现在,您可以保存自定义表情,然后在下次使用该插件时将它们加载为自定义按钮! -修复了问号按钮(也删除了它们,因为它们也为我演奏)-功能:-38个唯一的Unicode字符-完全可自定义的键入-复制到剪贴板按钮-可自定义的字体大小-可调整大小的文本区域如果您喜欢此应用,如果您能花时间对其进行评分,将不胜感激! 支持语言:English
Appium是一个用于自动化移动应用程序的开源工具,而Python是一种流行的编程语言,可以使用AppiumPython来实现移动应用程序的自动化测试。 连接模拟器并启动淘宝App的步骤如下: 1. 首先,需要安装AppiumPython的相关环境,包括Node.js、npm、Appium Server、PythonAppium Python客户端库。 2.打开Android模拟器,确保模拟器已经启动。 3.导入所需的Python库,包括webdriver、MobileBy和AppiumWebElement。 4.设置Appium连接参数,包括设备名称、平台版本、App路径和包名。 5.通过Appium Python客户端库中的webdriver.Remote()方法建立与Appium Server的连接。 6.使用find_element()方法找到并点击启动淘宝App的按钮。 7.等待淘宝App启动完成。 完整的Python代码示例如下: ```python from appium import webdriver from appium.webdriver.common.mobileby import MobileBy from appium.webdriver.webelement import WebElement desired_caps = { 'platformName': 'Android', 'platformVersion': '10', 'deviceName': 'emulator-5554', 'appPackage': 'com.taobao.taobao', 'appActivity': 'com.taobao.tao.homepage.MainActivity3' } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) button = driver.find_element(MobileBy.XPATH, '//android.widget.Button[@text="淘宝"]') button.click() # 等待淘宝App启动完成 driver.implicitly_wait(10) driver.quit() ``` 请注意,上述代码中的设备名称、平台版本、App路径和包名需要根据实际情况进行修改。 以上就是使用AppiumPython连接模拟器并启动淘宝App的详细步骤和示例代码。通过这种方式,可以进行移动应用程序的自动化测试和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值