Appium自动化测试中获取Toast信息操作
目录
- Toast简介
- Toast 定位
- 启动参数配置
- toast信息存在是否存在判断封装
- toast信息内容获取
Toast简介 Toast是Android中用来显示显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间有限,过一定的时间就会自动消失。
Toast 定位 Appium 1.6.3开始支持识别Toast内容,主要是基于UiAutomator2,因此需要在Capablity配置参数
启动参数配置 desired_caps['automationName']='uiautomator2'
环境
- Appium-Python-Client: 2.1.2
- selenium: 4.1.0
- Appium:v1.20.2
- 网易云课堂
- 夜神模拟器 Android 7.1.2
- 进入登录界面输入用户名和错误的密码,获取Toast内容
# _*_ coding:utf-8 _*_from appium import webdriverfrom appium.webdriver.common.appiumby import AppiumBydesired_caps = {"platformName": "Android","platformVersion": "7.1.2","udid": "127.0.0.1:62001","appPackage": "com.netease.edu.study","appActivity": "com.netease.edu.study.activity.ActivityWelcome","noReset": True,'automationName': 'uiautomator2'}driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)driver.implicitly_wait(30)# 点击我的菜单driver.find_element(AppiumBy.ID, "com.netease.edu.study:id/tab_account").click()# 点击登录注册按钮driver.find_element(AppiumBy.XPATH, "//*[@text='登录/注册']").click()# 点击手机号码登录driver.find_element(AppiumBy.ID, "com.netease.edu.study:id/login_phone_login").click()# 输入手机号码driver.find_element(AppiumBy.ID, "com.netease.edu.study:id/tv_phone_num").send_keys("132****475")# 输入错误密码driver.find_element(AppiumBy.ID, "com.netease.edu.study:id/tv_phone_pwd").send_keys("wy12345")# 点击登录按钮driver.find_element(AppiumBy.ID, "com.netease.edu.study:id/button").click()# 获取toast提示toast_text = driver.find_element(AppiumBy.XPATH, "//*[@class=\"android.widget.Toast\"]").textprint(toast_text)
执行结果:
【Appium自动化测试中获取Toast信息操作】
文章图片
说明
toast 获取主要使用一个通用的class属性获取,通过xpath的方式://*[@class="android.widget.Toast"]
toast信息存在是否存在判断封装 代码
def is_toast_exist(driver,text,timeout=20,poll_frequency=0.5):'''is toast exist, return True or False:Agrs:- driver - 传driver- text- 页面上看到的文本内容- timeout - 最大超时时间,默认20s- poll_frequency- 间隔查询时间,默认0.5s查询一次:Usage:is_toast_exist(driver, "看到的内容")'''try:toast_loc = ("xpath", ".//*[contains(@text,'%s')]"%text)WebDriverWait(driver, timeout, poll_frequency).until(EC.presence_of_element_located(toast_loc))return Trueexcept:return False
toast信息内容获取 代码
def is_toast_exist(driver,timeout=20,poll_frequency=0.5):'''is toast exist, return toast_text or None:Agrs:- driver - 传driver- timeout - 最大超时时间,默认20s- poll_frequency- 间隔查询时间,默认0.5s查询一次:Usage:is_toast_exist(driver)'''try:toast_loc = ("xpath", "//*[@class=\"android.widget.Toast\"]")WebDriverWait(driver, timeout, poll_frequency).until(EC.presence_of_element_located(toast_loc))toast_text = driver.find_element(AppiumBy.XPATH, "//*[@class=\"android.widget.Toast\"]").textreturn toast_textexcept:return None
到此这篇关于Appium自动化测试中获取Toast信息操作的文章就介绍到这了,更多相关Appium 获取Toast内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- RENIX软件连接机箱测试RTSM基本操作——网络测试仪实操
- Web端网站兼容性测试如何进行(来看看浏览器的兼容性测试要点)
- 在线培训考试系统开源
- Vue自定义表格组件(测试版)
- Appium+ios环境搭建
- python自动化测试|自动化测试——Selenium+Python之下拉菜单的定位
- 自动化测试|selenium自动化测试——元素定位篇(下)
- 测试用例|软件测试(测试用例)—写用例无压力
- 测试用例|自动化测试——unittest框架
- 单元测试|自动化测试——selenium(环境部署和元素定位篇)