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);

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

  • 相关阅读:
    git clone time out
    Window版本的nvm下载安装以及配置
    jdk安装目录查询
    idea 快捷键
    faac简介、编译、使用
    socket编程实例TCP
    jsoncpp简介、下载、编译、使用
    时间时区概念及常用时间函数
    开启博客之旅
    找回了用户名和密码
  • 原文地址:https://www.cnblogs.com/qiaoyeye/p/4760571.html
Copyright © 2011-2022 走看看