zoukankan      html  css  js  c++  java
  • webdriver的2种等待

    隐性等待是指当要查找元素,而这个元素没有马上出现时,告诉WebDriver查询Dom一定时间,默认值是0,但是设置之后,这个时间将在WebDriver对象实例整个生命周期都起作用

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

    显式等待:selenium webdriver提供了一些方法帮助我们等待正好需要等待的时间。利用WebDriverWait类和ExpectedCondition接口就能实现这一点。

            WebDriverWait wait = new WebDriverWait(dr,10);
            wait.until(new ExpectedCondition<WebElement>(){
            @Override
            public WebElement apply(WebDriver d) {
                return d.findElement(By.className("red_box"));
            }
            WebDriverWait wait = new WebDriverWait(dr,10);
            // 创建一个新的ExpectedCondition接口,实现apply方法
            boolean flag = wait.until(new ExpectedCondition<Boolean>() {
                @Override
                public Boolean apply(WebDriver d) {
    
                    return d.findElement(by).isDisplayed();
                }
            });

    Java线程等待(Thread.sleep()),这种方最不好,因为一个元素的加载时间有长有短,你在设置sleep的时间之前要自己把握长短,太短容易超时,太长浪费时间。

  • 相关阅读:
    关于递归的理解
    every few days
    相见恨晚
    VC中自定义消息处理函数的步骤
    wparam和lparam的区别
    VC中新建的类不见了的解决方法
    接连遇到大牛
    老总NB的 romman.sys
    [恢]hdu 1159
    [恢]hdu 1996
  • 原文地址:https://www.cnblogs.com/wujuan321/p/7338754.html
Copyright © 2011-2022 走看看