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: