selenium 等待页面加载完成

一、隐形加载等待:

file:///C:/Users/leixiaoj/Desktop/test.html 该页面负责创建一个div 
<html>
<head>
    <title>Set Timeout</title>
    <style>
        .red_box {background-color: red; width = 20%; height:100px; border: none;}
    </style>
    <script>
        function show_div(){
            setTimeout("create_div()", 5000);
        }
        function create_div(){
            d = document.createElement('div');
            d.className = "red_box";
            document.body.appendChild(d);
        }
    </script>
</head>
<body>
    <button id = "b" onclick = "show_div()">click</button>
</body>
</html>
等候10s后再修改div
//隐式等待
public
static void main(String[] args) throws InterruptedException { WebDriver dr = new FirefoxDriver(); //设置10 秒 dr.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS); String url = "file:///C:/Users/leixiaojiang/Desktop/test.html"; dr.get(url); dr.findElement(By.id("b")).click(); WebElement element =dr.findElement(By.cssSelector(".red_box")); ((JavascriptExecutor)dr).executeScript("arguments[0].style.border ="5px solid yellow"",element); }
       //显式等待
       WebDriver dr = new FirefoxDriver();
        
        String url = "file:///C:/Users/leixiaojiang/Desktop/test.html";
        dr.get(url);
        WebDriverWait wait = new WebDriverWait(dr,10);
        wait.until(new ExpectedCondition<WebElement>(){
        @Override
        public WebElement apply(WebDriver d) {return d.findElement(By.id("b"));}
        }).click();
        //上面的点击操作5s后才有red_box这个类出现
        WebDriverWait wait1 = new WebDriverWait(dr,10);
        WebElement element =dr.findElement(By.cssSelector(".red_box"));
        ((JavascriptExecutor)dr).executeScript("arguments[0].style.border ="5px solid yellow"",element);

原文地址:https://www.cnblogs.com/Lxiaojiang/p/6248496.html