본문 바로가기

error

[Selenium] 'WebDriver' object has no attribute 'find_element_by_css_selector' 오류 및 해결방법

셀레니움 오류

'WebDriver' object has no attribute 'find_element_by_css_selector'

 

 

Selenium의 경우 라이브러리 제작자 측에서 업데이트가 잦음.

따라서 더이상 Webdriver에서 find_element_by_css_selector를 제공하지 않는 문제

find_element_by_css_selector
find_element_by_xpath
find_element_by_class_name
find_element_by_id
find_element_by_link_text
find_element_by_name

=> 기존의 문법이 find_element 로 통일되었음(아래 참고)

 

해결

1. 반드시 selenium.webdriver.common.by를 import

2. find_element + By 경로를 설정해 사용 (element는 하나, elements는 여러 개의값가져올 때 사용)

from selenium import webdriver
from selenium.webdriver.common.by import By

driver.find_element(By.CSS_SELECTOR , "CSS선택자")
driver.find_element(By.XPATH, "XPATH")
driver.find_element(By.NAME, "NAME속성값")
driver.find_element(By.CLASS_NAME, "CLASS속성값")
driver.find_element(By.LINK_TEXT, "LINK텍스트")
driver.find_element(By.ID, "ID속성값")

 

경로별 설명

CLASS_NAME = 'class name'
CSS_SELECTOR = 'css selector'
ID = 'id'
LINK_TEXT = 'link text'
NAME = 'name'
PARTIAL_LINK_TEXT = 'partial link text'
TAG_NAME = 'tag name'
XPATH = 'xpath'