zoukankan      html  css  js  c++  java
  • appium等待元素

    1、sleep()方法

    Thread.sleep(60000)强制等待60s

    2、隐式等待implicitlyWait()

    driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
    全局等待30s不管元素是否已经加载
    1) 当使用了隐式等待执行测试的时候,如果WebDriver没有在DOM中找到元素,将继续等待,超出设定时间后则抛出找不到元素的异常
    2)换句话说,当查找元素或元素并没有立即出现的时候,隐式等待将等待一段时间再查找DOM,默认的时间是0
    3) 一旦设置了隐式等待,则它存在整个WebDriver 对象实例的声明周期中,隐式的等到会让一个正常响应的应用的测试变慢。
    4) 它将会在寻找每个元素的时候都进行等待,这样会增加整个测试执行的时间。
    implicitly_wait()方法比sleep() 更加智能,后者只能选择一个固定的时间的等待,前者可以在一个时间范围内智能的等待。

    3、显示等待WebDriverWait()

    WebDriverWait wait = new WebDriverWait(driver, 60);
    WebElement e = wait.until(new ExpectedCondition<WebElement>(){ 
    @Override 
    public WebElement apply(WebDriver d) { 
    return 
    d.findElement(By.xpath("//android.widget.RelativeLayout[@index='2']")); 
    }});
    e.click();
    WebDriverWait类的构造方法接受了一个WebDriver对象和一个等待最长时间(60秒)。然后调用until方法,其中重写ExpectedCondition接口中的apply方法,让其返回一个WebElement,即加载完成的元素,然后点击。默认情况下,WebDriverWait每500毫秒调用一次ExpectedCondition,直到有成功的返回,当然如果超过设定的值还没有成功的返回,将抛出异常

  • 相关阅读:
    IIS6为应用程序池**提供服务的进程与 World Wide Web Publishing 服务通信时遇到致命错误
    C# WINFORM 强制让窗体获得焦点
    数据库性能优化详解
    sqlserver 2008 修改表结构不能保存
    SQL性能优化
    aspnet打印 设置(页脚 一些数据显示在打印页的最下面)
    图片转成byte数组
    在配置文件中定义初始值然后读取
    DOM编程
    html动态显示时间
  • 原文地址:https://www.cnblogs.com/liuwanqiu/p/8543353.html
Copyright © 2011-2022 走看看