Completion over Perfection

파이썬(Python) Selenium webdriver가 실행되지 않을 때 본문

파이썬 (Python)

파이썬(Python) Selenium webdriver가 실행되지 않을 때

난차차 2020. 5. 12. 22:52
반응형

파이썬(Python) Selenium webdriver가 실행되지 않을 때

 

오늘은 파이썬 자동화 라이브러리인 Selenium에서 Webdriver를 사용할 때 에러가 나는 경우에 대해서 알아보겠습니다.

 

저도 코딩에 대해 아무것도 모르는 초보일 때, 

구글에서 검색해서 많은 도움을 받기도 했지만.. 

구글에서조차 설명되어 있지 않은 에러로 고통을 받을 때가 많았습니다. 

 

왜냐하면 지금 돌아봤을 때 정말 간단하고 어처구니 없는 실수들이었거든요.

예를 들면 따옴표를 빼먹었다거나, 쉼표를 제대로 찍지 않았다거나 하는 실수들이요. 

 

실수했습니까 휴먼?

 

하지만 이런 사소한 실수를 하더라도 파이썬은 아주 심각한 오류로 받아들이죠. 

그러고나선 아래의 예시와 같은 에러코드를 내뱉습니다. 

 

에러예시1) SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape 

 

에러예시2) selenium.common.exceptions.WebDriverException: Message: 'chromedriver_win32' excutable may have wrong permissions.

 

 

초보로서는 당황할 수 밖에 없습니다. 

아무도 webdriver 경로를 어떻게 지정해야된다! 라고 매뉴얼처럼 말해주지 않기 때문이죠. 

 

에러다 으악!!!!

 

그래서 저는 제가 했던 실수들을 포함해서, webdriver로 자동화 진행시에 발생할 수 있는

최대한 많은 경우에 대해 정리를 해보고자 합니다.

한 개의 포스트로는 정리가 안될수도 있겠네요. 

 

Selenium Webdriver 실행은 아래와 같이 경로를 변수로 하나 지정하고,

그 경로를 불러온다고 가정하고 설명을 드리겠습니다. 

 

from selenium import webdriver

 

cpath = 'C:\\Users\\abcd\\Desktop\\chromedriver_win32'

driver = webdriver.Chrome(cpath)

 

 

그럼 위에 예시로 들었던 에러코드부터 해결하도록 하겠습니다. 

 

[에러발생 코드 - 1]

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape 

 

[해결방법 - 1]

chrome webdriver의 경로를 지정할 때, 역슬래시 1개로 경로가 표현되어 있을 수 있습니다.

경로를 아래와 같이 역슬래시 2개로 수정하거나, 정방향 슬래시로 수정해 줍시다.

 

  - 잘못된 경로지정 예 : C:\Users\chromedriver_win32\chromedriver_win32.exe

  - 정상적인 경로지정 예1 : C:\\Users\\chromedriver_win32\\chromedriver_win32.exe 

  - 정상적인 경로지정 예2 : C:/Users/chromedriver_win32/chromedriver_win32.exe

 

 

[에러발생 코드 - 2]

selenium.common.exceptions.WebDriverException: Message: 'chromedriver_win32' excutable may have wrong permissions.

 

 

[해결방법 - 2]

chrome webdriver의 경로가 설치파일까지 지정이 안되어 있을 수 있습니다.

exe 파일의 경로까지 꼼꼼하게 적어줍니다. 

 

  - 잘못된 경로지정 예 : C:\\Users\\chromedriver_win32

  - 정상적인 경로지정 예 : C:\\Users\\chromedriver_win32\\chromedriver_win32.exe

 

[에러발생 코드 - 3]

TypeError: 'module' object is not callable

 

[해결방법 - 3]

driver를 선언해줄 때, webdriver.chrome의 크롬 모듈 부분을 소문자로 쓰지는 않았는지 확인해봅니다.

소문자로 쓰여있다면 대문자로 변경해줍니다. 

 

  - 잘못된 모듈 호출 예 : driver = webdriver.chrome(cpath)

  - 정상적인 모듈 호출 예 : driver = webdriver.Chrome(cpath)

 

제가 겪었던 어이없는 실수들은 이정도네요.

혹시 더 추가로 공유할 내용이 있으시면 댓글로 공유 부탁드려요~

반응형
Comments