셀레니움을 공부하던 도중 time 모듈을 사용하여 원하는 창을 원하는 초만큼 유지하기 위해 사용되는 명령어와
크롬 모듈안에 있는 시간만큼 대기하는 명령어의 차이가 궁금하여 공부하게 되었다.
time.sleep 을 사용하기 위해선 import time을 해주어야 사용할 수 있다.
import time
time.sleep(10) # 10초 대기
위의 명령어처럼 대기하기 원하는 초만큼 작성해주면 된다.
크롬의 Webdriver를 사용하면, 명령어를 사용할 수 있다.
time과 마찬가지로 모듈을 사용하기 위해선 import 해주어야 하지만, time 모듈과는 다른 import가 차이점이다.
from selenium import webdriver
chrome = webdriver.Chrome("./chromedriver.exe") # 현재 파일과 같은 위치의 chromedriver를 사용한다.
chrome.get("http://naver.com")
chrome.implicily_wait(10) # 10초 대기
time과 마찬가지로 대기하기 원하는 초만큼 작성해주면 된다.
그리고 사용하기 위해선 chromedriver가 필요하다.
암시적 대기를 설정해도 문제가 생길 수 있는 부분이 있는데, 동적 페이지 같은 경우가 그렇다.
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
wait = WebDriverWait(driver, 10)
wait.until(조건)
먼저 WebDriverWait 객체를 생성하고, 인자로 driver와 timeout이 들어간다.
조건을 설정하는 방법은 wait.until(조건)처럼 인자에 기다릴 조건을 넣는다.
간단하게 차이점을 정리한다.
import time
from selenium import webdriver
webdriver.Chrome("./chromedriver.exe").implicitly_wait(초)
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait