需要Selenium等待文件準備好
在Selenium中,我們可以透過使用pageLoadTimeout方法等待文件就緒(頁面完全載入)。等待時間將作為此方法的一個引數。
webdriver等待該持續時間以完成頁面載入。如果在頁面載入完後這段時間過去,將丟擲TimeoutException。
語法
driver.manage().timeouts().pageLoadTimeout(3, TimeUnit.SECONDS);
示例
帶有pageLoadTimeout的程式碼實現
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class PageLdTime{
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver",
"C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
WebDriver driver = new ChromeDriver();
//page load wait
driver.manage().timeouts().pageLoadTimeout(3, TimeUnit.SECONDS);
//URL launch
driver.get("https://tutorialspoint.tw/index.htm");
driver.close();
}
}我們還可以透過使用JavaScript執行者等待文件準備好(頁面完全載入)。等待會持續到JavaScript命令document.readyState返回“complete”。
語法
JavascriptExecutor j = (JavascriptExecutor)driver;
j.executeScript("return document.readyState").toString().equals("complete");帶有JavaScript執行者的程式碼實現
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.JavascriptExecutor;
public class PageldJs{
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver",
"C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
WebDriver driver = new ChromeDriver();
//implicit wait
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
//URL launch
driver.get("https://tutorialspoint.tw/index.htm");
try{
// Javascript Executor for ready state
JavascriptExecutor j = (JavascriptExecutor)driver;
if (j.executeScript("return document.readyState").toString().equals("complete")){
System.out.println("Page in ready state"); }
} catch(Exception exe) {
System.out.println("Page not in ready state");
}
driver.close();
}
}
}輸出

廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP