본문 바로가기

IT/코딩

[파이썬] driver.implicitly_wait 와 time.sleep 차이점

driver.implicitly_wait(10) 과 time.sleep(10) 의 차이점은 뭘까요?

 

결론부터 얘기하자면,

driver.implicitly_wait(10) : 10초안에 웹페이지를 load 하면 바로 넘어가거나, 10초를 기다림.

time.sleep(10) : 10초를 기다림.

 

따라서, webcrawling 을 할 때는 driver.implicitly_wait() 을 사용하는게 좋습니다. (속도면에서)

 

웹크롤링을 위해 selenium 에 있는 webdriver 을 사용할 때가 많이 있습니다.

webdriver 을 사용할 때, 컴퓨터 성능과 인터넷 환경에 따라 load 하는 시간이 다 다를 수 있습니다.

 

그러다보니 필연적으로 LOAD 하는 시간을 주는 경우가 많습니다.

이럴 때 사용하는 것이 두가지 있습니다.

 

1. driver.implicitly_wait(시간)  

2. time.sleep(시간)

 

mplicitly_wait 메소드의 정의

 

+ driver.implicitly_wait(10) 을 했을 때, 정말 10초 전에 넘어가는지 눈으로 확인하고 싶다면?

 

import time
import datetime

start = time.time()

 

[해당 driver.implicitly_wait() 과 관련된 코드]


sec = time.time() - start
times = str(datetime.timedelta(seconds=sec)).split(".")
times = times[0]

print(times)

## print(times) 하게 되면 10초 전에 끝나는 걸 확인 할 수 있다.

 

 

+ Selenium으로 테스트를 하거나 매크로를 만들다보면 간혹 "ElementNotVisibleException" 에러가 보일 수 있습니다. 이럴 때는 시간을 조금 더 늘려주면 해결됩니다.