zoukankan      html  css  js  c++  java
  • Selenium Webdriver——设置等待时间

    1.隐式等待

    implicitlyWait():

    当使用了隐士等待执行测试的时候,如果 WebDriver没有在 DOM中找到元素,将继续等待,超出设定时间后则抛出找不到元素的异常

    当查找元素或元素并没有立即出现的时候,隐式等待将等待一段时间再查找 DOM,默认的时间是0

    一旦设置了隐式等待,则它存在整个 WebDriver 对象实例的声明周期中,隐式的等到会让一个正常响应的应用的测试变慢,

    它将会在寻找每个元素的时候都进行等待,这样会增加整个测试执行的时间。

    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

    2.显示等待

    WebDriverWait():webdriver的针对某个元素的明确等待(explicitly wait)

    详细格式如下:

    WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)

    driver - WebDriver 的驱动程序(Ie, Firefox, Chrome 或远程)

    timeout - 最长超时时间,默认以秒为单位

    poll_frequency - 休眠时间的间隔(步长)时间,默认为0.5 秒

    ignored_exceptions - 超时后的异常信息,默认情况下抛NoSuchElementException 异常。

     1     /**
     2      * 在给定的时间内去查找元素,如果没找到则超时,抛出异常
     3      * */
     4     public static void waitForElementToLoad(WebDriver driver, int timeOut, final By By) {
     5         try {
     6             (new WebDriverWait(driver, timeOut)).until(new ExpectedCondition<Boolean>() {
     7 
     8                 public Boolean apply(WebDriver driver) {
     9                     WebElement element = driver.findElement(By);
    10                     return element.isDisplayed();
    11                 }
    12             });
    13         } catch (TimeoutException e) {
    14             Assert.fail("超时!! " + timeOut + " 秒之后还没找到元素 [" + By + "]");
    15         }
    16     }
  • 相关阅读:
    POJ 3356 水LCS
    POJ 2250 (LCS,经典输出LCS序列 dfs)
    POJ 1080( LCS变形)
    整数划分问题之最大乘积
    进程调度之FCFS算法(先来先运行算法)
    c模拟银行家资源分配算法
    c模拟内存分配算法(首次适应算法,最佳适应算法,最坏适应算法)
    HDU 2602 Bone Collector(经典01背包问题)
    NYOJ 44 字串和 (最大字串和 线性dp)
    匈牙利游戏(codevs 1269)
  • 原文地址:https://www.cnblogs.com/hjhsysu/p/5740391.html
Copyright © 2011-2022 走看看