python+appium自动化测试-06toast元素识别

Android中的Toast是一种简易的消息提示框。 当视图显示给用户,在应用程序中显示为浮动。和Dialog不一样的是,它永远不会获得焦点,无法被点击。
Toast类的思想就是尽可能不引人注意,同时还向用户显示信息,希望他们看到。而且Toast显示的时间有限,一般3秒左右就消失了。因此使用传统的元素定位工具,我们是很难定位到Toast元素的。那么,我们应该怎样获取到toast元素呢?

Toast内容获取环境准备

Appium 1.6.3开始支持识别Toast内容,主要是基于UiAutomator2,因此需要在Capablity配置如下参数:desired_caps[‘automationName’]=‘uiautomator2’
安装appium-uiautomator2-driver: 安装命令如下cnpm install appium-uiautomator2-driver
安装selenium模块:pip install selenium

场景举例

进入登录界面输入错误的用户名或者密码,获取Toast内容:
“用户名或密码错误,你还可以尝试4次”
“验证失败次数过多,请15分钟后再试”

# coding=utf-8
from findElement.capability import driver
from selenium.webdriver.support.ui import WebDriverWait

driver.find_element_by_id('com.tal.kaoyan:id/login_email_edittext').clear()
driver.find_element_by_id('com.tal.kaoyan:id/login_email_edittext').send_keys('username')

driver.find_element_by_id('com.tal.kaoyan:id/login_password_edittext').send_keys('password')
driver.find_element_by_id('com.tal.kaoyan:id/login_login_btn').click()


error_message="用户名或密码错误,你还可以尝试4次"
#limit_message="验证失败次数过多,请15分钟后再试"

message='//*[@text=\'{}\']'.format(error_message)
# message='//*[@text=\'{}\']'.format(limit_message)

toast_element=WebDriverWait(driver,5,0.5).until(lambda x:x.find_element_by_xpath(message))
print(toast_element.text)
发布了47 篇原创文章 · 获赞 15 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_24601279/article/details/104027643
今日推荐