[selenium] AttributeError: module 'selenium.webdriver' has no attribute 'Service'

2024. 2. 29. 04:05Trouble shooting

오류 

AttributeError: module 'selenium.webdriver' has no attribute 'Service'

 

환경

Linux(ubuntu 20.04), Windows11

python 3.10.11

selenium 4.18.1

chrome 122.0.6261.95(공식 빌드)

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[11], line 9
      6 options = webdriver.ChromeOptions()
      7 options.add_argument('--headless')
----> 9 driver = webdriver.Chrome(service=webdriver.Service(chromedriver_path), options=options)
     11 driver.get('https://www.google.com/')
     13 driver.quit()

AttributeError: module 'selenium.webdriver' has no attribute 'Service'

 

 

결론(해결방법)

selenium 4.6 버전 부터는 크롬 드라이버를 알아서 받는다.

chrome_driver_path 제거

Use the latest version of Selenium

As of Selenium 4.6, Selenium downloads the correct driver for you. You shouldn’t need to do anything.



https://www.selenium.dev/documentation/selenium_manager/

현재

예전처럼 크롬드라이버 경로를 일일히 지정해주지 않아도 된다.

 

 

 

 썰풀이

예전에 스크래핑 용도로 사용하던 노트북을 교체하고 새 시스템에 그대로 코드를 넣었는데,

셀레늄이 오류를 뱉어낸다. 우분투 환경에서만 그런가 싶어서 윈도우 환경에서도 테스트를 해보았는데 같은 오류가 발생했다.

 

에전에 크롬은 업데이트를 할때마다 크롬드라이버 버전을 맞춰줘야 했던 기억이 나서, 크롬드라이버 홈페이지에 접속.

https://chromedriver.chromium.org/home

 

ChromeDriver - WebDriver for Chrome

WebDriver is an open source tool for automated testing of webapps across many browsers. It provides capabilities for navigating to web pages, user input, JavaScript execution, and more. ChromeDriver is a standalone server that implements the W3C WebDriver

chromedriver.chromium.org

 

예전에는 버전마다 링크를 달아주는 친절함이 있었는데.. json 엔드포인트에서 알아서 찾아가라고 한다..

 

야무지게 찾아서 맞는 버전으로 다운받고 (크롬 보안 경고 뜸) 경로를 지정해주고 실행하면!

 

속성에러가 뜬다.

저거 그대로 구글링하니 Service 말고 다른 속성에러만 쫙쫙나와서

셀레늄 공식문서를 찾아보니..

 

셀레늄 4.6 부터 알아서 크롬드라이버를 찾는다고한다.

 

 

728x90