Selenium에 대한 포스팅은 아래를 참고해주세요.
React에 Selenium 시작하기
셀레니움을 이용해서 크롤링을 진행하다보면 접근하려는 요소가 존재하지 않을 때 발생하는 NoSuchElementException에러를 종종 발견할 수 있다.
페이지와 서버가 통신중이거나 네트워크 지연 등으로 위의 크롤링을 원하는 요소가 html에 존재하기 전에 요소에 접근을 시도하기 때문에 발생하는 에러로, 시간대기를 이용해서 해결할 수 있다.
시간대기의 종류 및 각 사용법은 아래와 같다.
from time import sleep
sleep(3) //3초간 기다림
from selenium import webdriver
driver = webdriver.Chrome('chromedriver.exe')
driver.implicitly_wait(10)
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
browser=webdriver.Chrome('chromedriver')
browser.get("https://www.naver.com/")
WebDriverWait(driver, 100).until(EC.presence_of_element_located((By.CSS_SELECTOR, "div.header")))