python 怎样获取toast?

Posted 刚刚好1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 怎样获取toast?相关的知识,希望对你有一定的参考价值。

toast是什么?

  想要获取toast的小伙伴们,肯定知道这个是一个什么玩意,例行还是加一个图,加以解释,下图的就是传说中的toast,它有一个特点,出现时间特别短,很难通过定位元素去获取这个toast。

  

 

通过XPTH + Contains +text 来定位toast

 

 

  不能通过明确的元素定位来获取,那要怎么获取到toast呢?在做app自动化的时候,toast出现率非常高,所以必须要获取到toast,方便后面的断言。那要怎么通过什么方式获取呢?

  答案就是:采用Xpath + contains + text 进行定位,不能定位到具体的元素,所以只能通过显示的text来找了

   //*[contains(text(),"账号或密码不能为空")]

python -appium -真机 是怎样工作的?

  知道通过什么方式获取之前,我们还需要知道 python  -》appium + 真机或模拟机 是怎样工作的?

需要获取到toast的前提条件:

  • 安卓版本要在5.0以上
  • 设置  desired_caps[\'automationName\'] = \'Uiautomator2\'
  • 判断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提示信息对不对,一个字都不能错啊,不然找不到的,我就是因为一个文字写错,纠结了好几天都不知道是什么原因,泪奔,终于有人指出了我的问题,改好就找到了。

 

以上是关于python 怎样获取toast?的主要内容,如果未能解决你的问题,请参考以下文章

如何从自定义列表视图中获取选定项目并在 toast 消息中打印?

Python+Appium 获取 toast 方法的封装

python appium 封装获取toast方法

如何从该片段中的 onItemSelectedListener 中获取微调器单击的项目?

常用python日期日志获取内容循环的代码片段

从父活动android获取片段编辑文本值