HW

WebDriverWait vs pageLoadTimeout

 

 

webDriverWait

기능 : 페이지 로딩 후, 특정 요소가 조건을 만족할 때까지 기다림
타이밍 : 페이지는 이미 떴고, 그 안에 있는 버튼, 텍스트박스, 태그 이런 거 기다릴 때

  • 조건 만족하면 바로 넘어감. 안 되면 시간 다 될 때까지 기다리다가 TimeoutException이 발생한다.
new WebDriverWait(driver, Duration.ofSeconds(10));

 


pageLoadTimeout

기능 : 페이지 전체가 로딩되는 시간 제한
타이밍 : driver.get(url) 했을 때, 페이지가 너무 오래 걸리면 죽임

 

driver.set_page_load_timeout(10)
driver.get("https://example.com")

 

 

=> pageLoadTimeout과 webDriverWait은 서로 다른 역할을 하기 때문에, 크롤링 서비스를 구현한다면, 둘 다 설정해줘야 한다.

=> pageLoadTimeout은 통일해서 설정했고, webDriverWait은 각 요소 별로 시간을 다르게 해서 설정했다.

=> 예를 들어, 타이틀과 본문은 로드 되지 않으면 해당 기사는 크롤링 하지 않고 넘어가도록 했고, 기사 발행 시간 등의 요소가 보이지 않는 경우에는 우선 요소가 잡히지 않음을 저장하도록 설정했다.