2012-11-16 6 views
1

Selenium IDE의 Java Junit 내보내기는 기본값으로 30 초 implicit wait을 설정합니다. 즉, 요소를 테스트하기위한 어설 션이 없으면 30 초 동안 불필요한 지연이 발생합니다.Selenium에서 대기하지 않고 요소가 없다는 것을 신속하게 나타 내기

시간 초과가 1 인 명시적인 대기 (WebDriverWait 클래스)를 사용해 보았지만 여전히 약 30 초가 걸렸습니다.

모든 종류의 로케이터 (예 : By 클래스)를 암시 적으로 대기하지 않으려면 어떻게해야합니까?

driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS); 

답변

0
boolean isElementPresent(By by) { 
    try { 
     driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS); 
     driver.findElement(by); 
     driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
     return true; 
    } 
    catch(Exception e){ 
     driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
     return false; 
    } 
} 

역겨운하지만 작품 :

2

설정 해제 암시 대기 당신은 명시 적으로 사람을 사용하는 경우. 암시 적으로 기다리는 모든 명령이 오버로드 될 수 있어야합니다. find 요소에는 2 param 버전이 없습니다. By By?

+0

그러나 다른 코드는 30 초 암시 적 대기에 의존 할 수 있습니다 ... –

+0

여전히 좋은 팁입니다. 감사합니다. – Steve

관련 문제