selenium 等待页面加载完成

时间:2021-08-22 12:23:40

一、隐形加载等待:

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

selenium 等待页面加载完成