본문 바로가기

테스팅

[테스팅] Selenium Web Driver Waits(Implicit, Explicit waits)

Ajax와 자바스크립트로 개발된 대부분의 웹 애플리케이션을 웹 브라우저로 로드할 때 각각의 엘리먼트는 로딩되는 시간이 다름.

 


Selenium 으로 자동화 테스트를 수행할 때 "ElementNotVisibleException" 발생함.

 

Solution:
Implicit Wait

 

  • Implicit wait는 정해진 특정 시간 동안 웹 브라우저가 웹 엘리먼트를 기다리도록 설정함. 
  • 디폴트 값은 0. 
  • 전체 엘리먼트에 적용됨(전역 변수와 같은 개념).

Syntax: 
driver.manage().timeouts().implicitlyWait(TimeOut, TimeUnit.SECONDS); 

 

Example:

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

 

Explicit Wait 

 

  • 웹 브라우저가 특정 컨디션(Expected Conditions) 또는 시간을 기다리도록 설정함.
  • 특정 엘리먼트에만 적용됨.

 

Syntax: 
WebDriverWait wait = new WebDriverWait(WebDriverRefrence,TimeOut); 

 

Example:

WebDriverWait wait = new WebDriverWait(driver,30);

 

Reference:

https://github.com/ferozah83/Selenium_WebDriver_with_Java/blob/master/Actions_Class/moveToElement.java