zoukankan      html  css  js  c++  java
  • 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提示信息对不对,一个字都不能错啊,不然找不到的,我就是因为一个文字写错,纠结了好几天都不知道是什么原因,泪奔,终于有人指出了我的问题,改好就找到了。

     

  • 相关阅读:
    spring-102-spring全注解快速实现事务
    spring-101-springAOP
    spring-201-springmvc基于MappingJacksonValue 实现JSONP
    啥是JSONP---转
    request.getSession(boolean create)的正确使用姿势
    spring-003-Resource资源
    spring-002-Ioc bean配置
    spring-001-Ioc 顶层容器
    为企业提供免费代码安全扫描服务(每月限一次)
    圆满完成平安科技Web安全与App应用安全测试培训!
  • 原文地址:https://www.cnblogs.com/cuitang/p/10165729.html
Copyright © 2011-2022 走看看