Computer >> Máy Tính >  >> Lập trình >> Javascript

Chờ trang phức tạp với JavaScript tải bằng Selenium.

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

Chờ trang phức tạp với JavaScript tải bằng Selenium.