2011-03-21 6 views
2

Selenium WebDriver를 사용하여 FireFox 브라우저 상태 표시 줄 텍스트를 읽는 방법을 알고있는 사람이 있습니까? 내 전체 웹 페이지가 완전히로드되었는지 여부를 알고 싶기 때문에 필요합니다.Selenium WebDriver에서 브라우저 상태 표시 줄 텍스트를 읽는 방법

다른 방법이 있다면 나에게 제안하십시오. JavaScript를 호출하면 Java 프로그램에서 Firefox 상태 표시 줄 텍스트가 반환됩니까?

또한 웹 페이지에서보고있는 웹 요소가 있는지 어떻게 확인할 수 있습니까?

감사합니다.

답변

0

WebDriver를 사용하여 FireFox 상태 표시 줄을 읽는 방법이 없다고 생각합니다.

webdriver.get()을 수행하면 테스트 또는 스크립트로 제어를 반환하기 전에 "onload"이벤트가 발생할 때까지 대기합니다. 그러나 페이지가 많은 AJAX를 사용하여 페이지에 내용을로드하고 "onload"이벤트가 브라우저에 계속 표시되는 경우에는 충분하지 않을 수 있습니다.

페이지가 완전히로드되어야하는 경우 해결 방법은 "대기"를 사용하는 것입니다.

당신은 특정 요소 기다릴 수

:

Wait<WebDriver> wait = new WebDriverWait(driver, 10); 
wait.until(visibilityOfElementLocated(By.id("target"))); 

참조 : http://seleniumexamples.com/blog/examples/selenium-2-examples/

또는 아약스 보류중인 요청 완료 될 때까지 기다려야 시도 :

참조 : http://blog.activelylazy.co.uk/2010/05/05/testing-asynchronous-applications-with-webdriver/

+0

셀레늄 (2) 왜냐하면 단순히'findElement'를 사용하는 것은 대상 요소가 존재할 때까지 기다릴 것이기 때문입니다. –

+0

@Dave, 해당 요소가 표시되지 않으면 어떻게해야합니까? 그 요소를 찾지 못하면 예외가 생길까요? – OverrockSTAR

+0

당신 말이 맞습니다. 나는 Google에서 검색 결과를 수집 할 때이 문제에 직면하고 있습니다. 이제는 Ajex를 사용하고 있다고 생각하고 스크립트 때문에 실패합니다. 지금은 임시 while while - while while (driver.findElements (By Google Home)) == null && driver.findElements (By.linkText ("Google 정보")) == null && driver.findElements ("Advertising Programs")) {driver.manage(). timeouts(). implicitlyWait (1, TimeUnit.SECONDS); }' – OverrockSTAR