zoukankan      html  css  js  c++  java
  • selenium使用等待的几种方式

    1.使用java的sleep

            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

    2.使用selenium的WebDriverWait,显示等待

        public void f1() {
            dr.get("http://www.baidu.com");
            WebDriverWait wait = new WebDriverWait(dr,10);
            wait.until(new ExpectedCondition<WebElement>(){
    
                @Override
                public WebElement apply(WebDriver arg0) {
                    // TODO Auto-generated method stub
                     return arg0.findElement(By.id("kw"));
                }
                
            }).sendKeys("test");
            
            wait.until(new ExpectedCondition<Boolean>(){
    
                @Override
                public Boolean apply(WebDriver arg0) {
                    // TODO Auto-generated method stub
                    return arg0.findElement(By.id("2")).isDisplayed();
                }
                
            });
        }

    先构造方法,显示等待最多10秒,直到出现下面apply方法(重写)的元素,第一个重写的apply方法返回的元素对象,第二个重写的apply方法返回的Boolean,10秒内出现,则往下运行,10秒后仍不出现,则抛出异常

    3.使用selenium的隐式等待,全局

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

    在项目中,感觉第三种方式作用不大,用的最多的就是第一种和第二种,推荐用第二种,智能等待

  • 相关阅读:
    关于两次fork
    阻塞非阻塞与同步异步的区别
    函数调用堆栈
    数组
    64位操作系统与32位操作系统数据类型的字节数
    Redis 键(key)
    Redis 命令
    Redis 安装
    Redis 配置
    MongoDB 安装
  • 原文地址:https://www.cnblogs.com/qiaoyeye/p/4760571.html
Copyright © 2011-2022 走看看