기본 지식
selenium에서 브라우저로서 크롬을 사용하기 위해서는 설치된 크롬 브라우저와 동일한 버전의 크롬 드라이버라는 것을 설치해야 합니다.
여기에서는 selenium 설치부터, 크롬 드라이버를 자동으로 설치하는 부분까지 다룹니다.
python에서 selenium 설치법
pip install selenium
크롬 드라이버 설치
selenium에서는 여러 종류의 브라우저를 실행시킬 수 있는데 그중 크롬이 대중적이고 사용하기 편해서 사용하다보면, 크롬 버전과 동일한 chrome driver를 다운로드 받아야합니다.
해당 하는 버전은 크롬 브라우저창에서 아래 주소를 입력합니다.
chrome://version/
크롬 드라이버는 아래에서 입력합니다.
chromedriver.chromium.org/downloads
기본 예제
1 2 3 4 5 6 7 8 9 10 | from selenium import webdriver from selenium.webdriver.common.keys import Keys import time driver = webdriver.Chrome() driver.get("https://www.naver.com") driver.implicitly_wait(3) |
적절한 버전의 크롬 드라이버를 설치하지 않았을때 오류 문구
DevTools listening on ws://127.0.0.1:50815/devtools/browser/18099847-b9a2-4edc-a02e-7aa5b142da4c Traceback (most recent call last): File "selenium_auto_chromedriver.py", line 8, in <module> driver = webdriver.Chrome() File "C:\Users\USER\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 76, in __init__ RemoteWebDriver.__init__( File "C:\Users\USER\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 157, in __init__ self.start_session(capabilities, browser_profile) File "C:\Users\USER\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 252, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "C:\Users\USER\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute self.error_handler.check_response(response) File "C:\Users\USER\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 83
크롬브라우저는 자체적으로 업데이트가 되어서 가끔 크롬 드라어버의 버전과 맞지 않는 경우가 있습니다.
크롬 드라이버를 자동으로 업데이트 하는 방법
설치
pip install chromedriver-autoinstaller
사용법
chromedriver_autoinstaller.install()
예제
1 2 3 4 5 6 7 8 9 10 11 12 | import chromedriver_autoinstaller from selenium import webdriver from selenium.webdriver.common.keys import Keys import time chromedriver_autoinstaller.install() driver = webdriver.Chrome() driver.get("https://www.naver.com") driver.implicitly_wait(3) |
막상 해보면 아래와 같은 오류가 나옵니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | Traceback (most recent call last): File "selenium_auto_chromedriver.py", line 9, in <module> driver = webdriver.Chrome() File "C:\Users\USER\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 76, in __init__ RemoteWebDriver.__init__( File "C:\Users\USER\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 157, in __init__ self.start_session(capabilities, browser_profile) File "C:\Users\USER\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 252, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "C:\Users\USER\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute self.error_handler.check_response(response) File "C:\Users\USER\AppData\Local\Programs\Python\Python38\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: unknown error: Failed to create Chrome process. |
이게 발생하는 사유는 chromedriver를 다운로드하는데 시간이 걸려서 그런것 같습니다.
몇차례 하다보면 정상 작동합니다.
이 부분은 고치려면 처음본 exception일때
Message: session not created: This version of ChromeDriver only supports Chrome version 위 exception 일때만 크롬드라이버 install을 명령하도록 수정하면 될것입니다.
댓글 없음:
댓글 쓰기