2016-08-30 5 views
1

다음은 Firefox 용 브라우저의 셀렌 웹 드라이버 초기화입니다.Selenium Webdriver가 요소를 기다리지 않습니다.

driver = new FirefoxDriver(); 
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); 

요소를 기다리지 않고 암시 적으로 대기 셀렌을 보냈음에도 불구하고. 그것은 발견되지 않은 예외를 즉시 던지고 있습니다. Thread.sleep을 입력하면 문제없이 정상적으로 작동합니다. 그러나 Thread.sleep을 테스트 케이스에 포함 시키면 실제 테스트 케이스 코드보다 Thread.sleep이 더 많이 포함됩니다. 누구든지이 일을 할 수있는 올바른 방법을 제안 할 수 있습니까?

+0

을 ?? : 내가 사용하는 것이 좋습니다 것입니다 –

+0

선호하는 방법은 명시 적 대기이지만 위의 문제는 아무 문제없이 작동해야하지만 공개 URL에서이 문제를 재현 할 수 있습니까? –

+0

@ MurunalGosar 공개 URL에서 잠을 자지 않고도 똑같은 노력을했습니다. 잘 작동합니다. 내 지역에서는 오류가 발생하고 있습니다 – Rajesh

답변

1

그런 경우에는 ExplicitWait을 사용하여 특정 요소가 표시되거나 표시 될 때까지 기다려야합니다. 이는 스레드를 종료하는 것이 좋지 않기 때문입니다. 당신은`ExplicitWait` 대신`WebDriverWait`를 사용하여 사용하지 않는 이유는

WebDriver driver wait = new WebDriverWait(driver, "time here"); 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(xPath))); 
관련 문제