想要获取toast的小伙伴们,肯定知道这个是一个什么玩意,例行还是加一个图,加以解释,下图的就是传说中的toast,它有一个特点,出现时间特别短,很难通过定位元素去获取这个toast。
不能通过明确的元素定位来获取,那要怎么获取到toast呢?在做app自动化的时候,toast出现率非常高,所以必须要获取到toast,方便后面的断言。那要怎么通过什么方式获取呢?
答案就是:采用Xpath + text 进行定位
知道通过什么方式获取之前,我们还需要知道 python -》appium + 真机或模拟机 是怎样工作的?
1.安卓版本要在5.0以上
2.设置 desired_caps[‘automationName‘] = ‘Uiautomator2‘
3.判断toast是否存在:presence_of_element_located(注意不能使用visibility_of_element_located)
在模拟器或真机会生成两个用来获取toast的文件,检查这两个文件,证明已经生成这两个文件
贴上最后的实现的代码:如果toast出现的时间很短,需要将等待时间的轮询的时间调小
WebDriverWait(driver, 8, 0.2).until(EC.presence_of_element_located((MobileBy.XPATH, ‘//*[contains(@text,"xxxx")]‘)))
最后给大家一个提示:前置条件都设置好了,模拟器或真机也有那两个获取toast的文件了,就要检查写的toast提示信息对不对,一个字都不能错啊,不然找不到的,我就是因为一个文字写错,纠结了好几天都不知道是什么原因,泪奔,终于有人指出了我的问题,改好就找到了。
原文:https://www.cnblogs.com/cuitang/p/10165729.html