2014-06-24 2 views
0

모달 창을 닫은 후 요소를 기다린 후 실패한 Selenium WebDriver 테스트가 있습니다. 특히 FluentWait 호출에서 요소를 찾는 데 실패합니다. 나는 기다림을 설정하는 다양한 방법을 시도했지만 아무도 일하고 ​​있지 않다. 여기에 내가 일을해야한다고 생각 무엇 :FluentWait가 예상대로 작동하지 않습니다.

실패하는 테스트 코드 :

여기
driver.findElement(By.className("dismiss")).click(); // this dismisses a modal window 
driver.switchTo().defaultContent(); 

FluentWait<WebDriver> fluentWait = new FluentWait<WebDriver>(driver) 
      .withTimeout(30, TimeUnit.SECONDS) 
      .pollingEvery(500, TimeUnit.MILLISECONDS) 
      .ignoring(NoSuchElementException.class); 

fluentWait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.className("next")))); 

driver.findElement(By.className("next")).click(); 

실패가 대기 전화의 요소를 찾고 발생합니다

org.openqa.selenium .NoSuchElementException : 요소를 찾을 수 없습니다. { "method": "class name", "selector": "next"} 명령 기간 또는 시간 초과 : 1.33 초이 오류에 대한 설명은 http://seleniumhq.org/exceptions/no_such_element.html을 참조하십시오. 빌드 정보 : 버전 : '2.41.0', 수정 : '3192d8a', 시간 : '2014-03-27 17:17:32' 시스템 정보 : 호스트 : '7rzrgv1.bsolver.local', ip : '10 .0.3.103 ', os .name : 'Linux', os.arch : 'amd64', os.version : '2.6.32-431.el6.x86_64', java.version : '1.7.0_60'세션 ID : 56c5a752-68fd- 4cdb-ae57-2fcefc930f6f 드라이버 정보 : org.openqa.selenium.firefox.FirefoxDriver 기능 [{플랫폼 = LINUX, acceptSslCerts이 = 사실, javascriptEnabled = 사실, cssSelectorsEnabled = 사실, databaseEnabled = 사실, browserName = 파이어 폭스, handlesAlerts = true, browserConnectionEnabled = true, webStorageEnabled = true, nativeEvents = false, rotatable = false, locationContextEnabled = true, applicationCacheEnabled = true, takesSc reenshot = 사실, 버전 = 나는 Thread.sleep(5000)fluentWait.until 전화를 교체 할 경우 24.6.0}]

click() 모든 시간을 작동합니다.

Xvfb 위에 Firefox가 실행되는 헤드리스 머신에서 테스트를 실행하는 경우에만 발생합니다. 실제 GUI가있는 경우에는 발생하지 않습니다.

그래서, 몇 가지 질문 :

FluentWaitNoSuchElementException을 무시되지 않는 이유는 무엇입니까?

아무에게도 암시 적 대기 이외의 다른 것을 처리하는보다 세련된 방법에 대한 생각이 있습니까?

+0

수입품을 보여줄 수 있습니까? 나는 당신이 다른 패키지에서'NoSuchElementException'을 사용하고있는 것 같아요. – xyz

+0

내 수입을 확인한 결과,'org.openqa.selenium.NoSuchElementException'을 가져오고 있습니다. – Axl

답변

1

동일한 문제가있었습니다. @ Karna와 @Axl은 내가 그것을 이해하는 것을 도왔다. import org.openqa.selenium.NoSuchElementException; 대신 import java.util.NoSuchElementException;을 사용했습니다.

관련 문제