JavaScript가 포함된 복잡한 페이지가 Selenium과 함께 로드될 때까지 기다릴 수 있습니다. 페이지가 로드된 후 자바스크립트 메소드 document.readyState를 호출할 수 있습니다. 완료될 때까지 기다립니다. 반환됩니다.
구문
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("return document.readyState").toString().equals("complete"); 다음으로 명시적 대기를 사용하여 페이지가 어떤 작업을 수행할 준비가 되었는지 확인할 수 있습니다. 동기화 개념입니다. 예상 조건 presenceOfElementLocated를 기다릴 수 있습니다. 요소에 대한. try catch 블록 내에서 전체 검증을 구현합니다.
예시
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();
}
} 출력
