Robotframework获取移动端toast问题

背景:

在做移动端自动化测试的时候,经常会遇到一个问题就是获取toast提示问题,如果需要解决这个问题需要重新处理,不能按照正常的逻辑,使用robotframework自带的关键字进行获取,需要重新考虑新的处理获取模式

一 环境配置

如果环境配置OK直接跳到第6步安装uiautomator2

1.下载Appium最新版

地址:https://github.com/appium/appium-desktop/releases

 

2.下载Python,并安装

3.下载Pycharm

4.下载Android SDK

5.安装uiautomator2

-  安装NPM镜像,地址:https://npm.taobao.org/

-  执行命令:npm install -g cnpm --registry=https://registry.npm.taobao.org

扫描二维码关注公众号,回复: 6973210 查看本文章

-  安装uiautomator2的配置文件执行命令:cnpm install appium-uiautomator2-driver

环境搭建好后,进行获取toast

 1 进入appium安装根目录,D:\Python27\Lib\site-packages\robotframework_appiumlibrary-1.5-py2.7.egg\AppiumLibrary\keywords,找到_element.py进行修改文件
 2 ,加入这段语句
 3 def toast_open_application(self,automationName,platformName,platformVersion,deviceName,uiid,appPackage,appActivity,unicodeKeyboard,resetKeyboard,noReset):
 4 
 5         desired_caps={}
 6         desired_caps['automationName']=automationName
 7         desired_caps["platformName"] = platformName
 8         desired_caps["platformVersion"] = platformVersion
 9         desired_caps["deviceName"] = deviceName
10         desired_caps["uiid"] = uiid
11         desired_caps["appPackage"] = appPackage
12         desired_caps["appActivity"] = appActivity
13 
14         desired_caps["unicodeKeyboard"] = unicodeKeyboard
15         desired_caps["resetKeyboard"] = resetKeyboard
16         desired_caps["noReset"] = noReset
17 
18         driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
19         return driver
20 
21     def new_clear(self,driver,path):
22         WebDriverWait(driver,20).until(EC.visibility_of_element_located((MobileBy.ID,'com.X.XX.debug:id/account')))
23         driver.find_element_by_id(path).clear()
24 
25     def  new_input(self,driver,path,data):
26         driver.find_element_by_id(path).send_keys(data)
27 
28     def new_click(self,driver,path,message):
29         driver.find_element_by_id(path).click()
30         # toast_loc = '//*[contains(@text,"请输入正确规则的密码")]'
31         toast_loc =".//*[contains(@text,'%s')]" %message
32         # print((MobileBy.XPATH,toast_loc))
33         try:
34             WebDriverWait(driver,5,0.01).until(EC.presence_of_all_elements_located((MobileBy.XPATH,toast_loc)))
35             print(driver.find_element_by_xpath(toast_loc).text)
36         except:
37             print('没有获取到toast信息')

robotframework使用该封装的关键字进行获取

1 登录_密码错误(toast)
2     Comment    Login Toast    请输入正确规则的密码
3     ${driver}    Toast Open Application    UiAutomator2    Android    6.0    Lenovo TB3-X70N    FACU8TP7UCAAMNUO
4     ...    com.X.cXd.debug    com.XX.XXactivity.SplashActivity    True    True    True
5     New Clear    ${driver}    com.XX.XX.debug:id/account
6     New Input    ${driver}    com.XX.cXXd.debug:id/account    123456
7     New Clear    ${driver}    com.XX.XX.debug:id/pwd
8     New Input    ${driver}    com.XX.XX.debug:id/pwd    123456ab
9     New Click    ${driver}    com.XX.XX.debug:id/login    请输入正确规则的密码






结果:

猜你喜欢

转载自www.cnblogs.com/xiaoyaowuming/p/11315258.html