解决APPIUM查找toast的问题

在做自动化测试过程中,需要匹配toast进行判断,搜索了一天appium查找toast也没找到解决方法,网上给出的代码要么不能用,要么有限制,我自己尝试解决了一下,居然成功了,现在分享一下(Python代码)

首先使用 desired_caps[‘automationName’] = ‘UiAutomator2’

1
2
3
4
5
6
7
8
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '7.1.1'
desired_caps['deviceName'] = '16f7113e'
desired_caps['appPackage'] = 'com.wanshifu.myapplication'
desired_caps['appActivity'] = '.moudle.login.LoginActivity'
desired_caps['automationName'] = 'UiAutomator2'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

然后使用 driver.find_elements_by_xpath 匹配查找
例如:我的toast为[ 您输入的密码必须大于8位 ],就使用8模糊匹配

1
2
s = driver.find_elements_by_xpath("//*[contains(@text, '8')]")
print(s)

打印的结果为:

1
2
[<appium.webdriver.webelement.WebElement (session="cf1b816e-3814-41d8-937b-a38ae82b64bd", element="b1cd21f2-525b-4394-a2c9-a3193f53bbcf")>, 
<appium.webdriver.webelement.WebElement (session="cf1b816e-3814-41d8-937b-a38ae82b64bd", element="e995d947-3f97-45fa-8e1e-e60e8d118d8a")>]

然后用assert去判定,你懂得。我的环境是(appium 1.7.1 python 3.5)