• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    미해결

__init__() got an unexpected keyword argument 'service' 에러 질문드립니다.

22.08.17 00:52 작성 조회수 9.47k

1

강사님, 안녕하세요:)
강사님의 열렬한 팬인 수강생입니다!

강의 정말 잘 듣고 있습니다.
 
이번에 셀레니움 버전 업그레이드가 되었다고 말씀 주신 후, 저도 현재 구글드라이버 버전인 104 크롬드라이버를 교체 후
코드를 작동시키니 __init__() got an unexpected keyword argument 'service' 이런 에러가 나왔습니다..
셀레니움 버전 문제인 것 같은데, 구글링을 진행해도 명쾌하게 찾지 못하는 상황입니다.
 
혹시 이 부분에서 답변을 받을 수 있을까요?
답변 주시면 정말 감사합니다.

답변 1

답변을 작성해보세요.

0

안녕하세요. 답변도우미입니다.

그렇게 말씀해주시니 감사합니다.

우선은 제 의견은 설치되어 있는 selenium 버전을 확인할 필요가 있을 것 같아요. 주피터노트북에서 별도 셀을 만들어 다음과 같이 명령하시면, 

!pip show selenium

다음과 같이 selenium 의 버전을 확인하실 수 있는데요. selenium 이 아무래도 3.x.x 버전과 4.x.x 버전의 호환성이 완전히 깨진 상황이더라고요.

-------

Name: selenium

Version: 4.3.0

Summary: 

Home-page: https://www.selenium.dev

Author: 

Author-email: 

License: Apache 2.0

Location: /Users/davelee/opt/anaconda-py39/anaconda3/lib/python3.9/site-packages

Requires: trio, trio-websocket, urllib3

Required-by: 

----

 

그래서, Version 이 4.x.x 대버전이 아니면, crawling_selenium_testing_V1_3_1 주피터노트북에 2022년 6월 30일 업데이트 부분의 기존 코드로 쓰셔야 하거든요. 이참에 selenium 을 최신 버전으로 업데이트해주신 후에, 실행을 해보시는 편이 좀더 나을 것 같습니다.

 

또, 다음 스택오버플로우에서의 커멘트 처럼

https://stackoverflow.com/questions/70534875/typeerror-init-got-an-unexpected-keyword-argument-service-error-using-p

 

selenium 3점대 버전이라면 다음과 같은 형태로 테스트를 해보셔도 좋고요.

driver = webdriver.Chrome(executable_path='C:\Program Files\Chrome Driver\chromedriver.exe')

 

selenium 4점대 버전이라면 다음과 같은 형태로 테스트를 해보셔도 좋을 것 같습니다.

service = Service(executable_path='C:\Program Files\Chrome Driver\chromedriver.exe')

driver = webdriver.Chrome(service=service)

 

일단 제 PC 에서는 4.3.0 버전이 설치되어 있는데요. 강의 자료의 코드를 그대로 실행했을 때, 정상 실행이 되긴 해서, 꼭 위와 같이 executable_path 를 안넣어도 될 것 같긴 하지만, 뭔가 알기 어려운 PC 환경 차이가 있을 수도 있어서, 이 부분도 한번 참고해보시면 좋을 것 같습니다.

 

!pip install --upgrade selenium

 

등으로 해당 패키지를 업데이트를 하실 수 있어서, 이 부분도 참고가 되면 좋겠습니다.

감사합니다.