Chúng ta có thể đợi một trang phức tạp với JavaScript tải bằng Selenium. Sau khi trang được tải, chúng tôi có thể gọi phương thức Javascript document.readyState và đợi cho đến khi hoàn tất được trả lại.
Cú pháp
JavascriptExecutor js = (JavascriptExecutor)driver; js.executeScript("return document.readyState").toString().equals("complete");
Tiếp theo, chúng tôi có thể xác minh xem trang đã sẵn sàng cho bất kỳ hành động nào hay chưa bằng cách sử dụng chờ rõ ràng khái niệm trong đồng bộ hóa. Chúng tôi có thể đợi điều kiện mong đợi presentOfElementLocated cho phần tử. Chúng tôi sẽ triển khai toàn bộ quá trình xác minh trong khối thử nắm bắt.
Ví dụ
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; import org.openqa.selenium.JavascriptExecutor; public class PageLoadWt{ public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "C:\\Users\\ghs6kor\\Desktop\\Java\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get("https://www.tutorialspoint.com/index.htm"); // Javascript Executor to check page ready state JavascriptExecutor j = (JavascriptExecutor)driver; if (j.executeScript ("return document.readyState").toString().equals("complete")){ System.out.println("Page loaded properly."); } //expected condition presenceOfElementLocated WebDriverWait wt = new WebDriverWait(driver,3); try { wt.until(ExpectedConditions .presenceOfElementLocated (By.id("gsc−i−id1"))); // identify element driver.findElement (By.id("gsc−i−id1")).sendKeys("Selenium"); } catch(Exception e) { System.out.println("Element not located"); } driver.quit(); } }
Đầu ra