테스트 할 페이지입니다. 속도가 느린 네트워크 (또는 인터넷 검열, 일부 리소스로드가 실패 할 수밖에 있음)로 인해 영원히로드됩니다. 그러나 페이지 요소의 대부분은 1 초 내에 존재합니다.Selenium : 무한하게로드 된 탐색 페이지에 pageLoadTimeout()을 구현하는 방법
Selenium은 페이지가 완전히로드 될 때까지 요소가 클릭되지 않으므로 pageLoadTimeout()을 사용하여 5 초 후에 페이지로드를 중단 한 다음 시간 제한을 처리하고 페이지에서 작업을 수행하려고합니다. 그리고 코드는 get (url)에 지정된 페이지에서 작동합니다.
try {
driver.manage().timeouts().pageLoadTimeout(5, TimeUnit.SECONDS);
driver.get(url);
}
catch (TimeoutException e){
}
finally {
driver.findElement(By.xpath("xpath here")).click();
}
그러나 링크를 클릭하여 새 페이지로 이동하려는 경우에는 작동하지 않습니다. 당신은 위의 코드를이 새 페이지의 시간 제한 예외를 처리하지 않았기 때문에 곧
org.openqa.selenium.TimeoutException에게
을 얻을 것입니다. 그런 다음이 새로운 페이지가 무한히로드되지 않도록 try-catch-finally를 추가해야합니다. 실제로 테스트 할 페이지에 도달하기 전에 연결해야하는 링크가 많으면이 작업이 더 까다로워 질 것입니다.
누구에게도 해결책이 있습니까?
[Selenium에서 pageLoadTimeout이 작동하지 않을 수 있습니다] (https://stackoverflow.com/questions/45591282/pageloadtimeout-in-selenium-not-working) – DebanjanB
나는 왜 잡으려고 노력해야하는지에 대한 논리를 이해하지 못합니다. 예외가 처음에'PageLoading'이 실패했을 때? – DebanjanB
안녕하십니까 @DebanjanB, 나는 pageLoadTimeout()을 사용하여 5 초 후에 페이지를로드하지 못하도록합니다. – Jacob