Selenium macOS의 Chrome 웹 드라이버 오류

Selenium macOS의 Chrome 웹 드라이버 오류

Macos M2에서 셀레늄을 사용하고 싶습니다. 이 코드를 실행했습니다.

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

options = Options()
options.add_argument("start-maximized")
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
driver.get("https://www.google.com")

그리고 다음 오류가 발생했습니다.

WebDriverException                        Traceback (most recent call last)
/Users/alancuzon/Desktop/Scrap/scrap_sorare.ipynb Cellule 1 in <cell line: 8>()
      6 options = Options()
      7 options.add_argument("start-maximized")
----> 8 driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
      9 driver.get("https://www.google.com")

File ~/opt/miniconda3/envs/tensorflow/lib/python3.9/site-packages/selenium/webdriver/chrome/webdriver.py:69, in WebDriver.__init__(self, executable_path, port, options, service_args, desired_capabilities, service_log_path, chrome_options, service, keep_alive)
     66 if not service:
     67     service = Service(executable_path, port, service_args, service_log_path)
---> 69 super().__init__(DesiredCapabilities.CHROME['browserName'], "goog",
     70                  port, options,
     71                  service_args, desired_capabilities,
     72                  service_log_path, service, keep_alive)

File ~/opt/miniconda3/envs/tensorflow/lib/python3.9/site-packages/selenium/webdriver/chromium/webdriver.py:92, in ChromiumDriver.__init__(self, browser_name, vendor_prefix, port, options, service_args, desired_capabilities, service_log_path, service, keep_alive)
     89 self.service.start()
     91 try:
---> 92     super().__init__(
     93         command_executor=ChromiumRemoteConnection(
     94             remote_server_addr=self.service.service_url,
     95             browser_name=browser_name, vendor_prefix=vendor_prefix,
     96             keep_alive=keep_alive, ignore_proxy=_ignore_proxy),
     97         options=options)
     98 except Exception:
     99     self.quit()

File ~/opt/miniconda3/envs/tensorflow/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py:270, in WebDriver.__init__(self, command_executor, desired_capabilities, browser_profile, proxy, keep_alive, file_detector, options)
    268 self._authenticator_id = None
    269 self.start_client()
--> 270 self.start_session(capabilities, browser_profile)

File ~/opt/miniconda3/envs/tensorflow/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py:363, in WebDriver.start_session(self, capabilities, browser_profile)
    361 w3c_caps = _make_w3c_caps(capabilities)
    362 parameters = {"capabilities": w3c_caps}
--> 363 response = self.execute(Command.NEW_SESSION, parameters)
    364 if 'sessionId' not in response:
    365     response = response['value']

File ~/opt/miniconda3/envs/tensorflow/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py:428, in WebDriver.execute(self, driver_command, params)
    426 response = self.command_executor.execute(driver_command, params)
    427 if response:
--> 428     self.error_handler.check_response(response)
    429     response['value'] = self._unwrap_value(
...
13  chromedriver                        0x0000000102574578 chromedriver + 3769720
14  chromedriver                        0x00000001025890f0 chromedriver + 3854576
15  libsystem_pthread.dylib             0x000000019287026c _pthread_start + 148
16  libsystem_pthread.dylib             0x000000019286b08c thread_start + 8

크롬 웹 드라이버를 다운로드하고 셀레늄과 웹 드라이버 관리자를 설치했습니다.

어떻게 진행해야 하는지 아시나요?

정말 감사합니다 !

답변1

우리는 드라이버를 관리하기 위해 Python의 Selenium의 webdriver-manager를 사용하고 있으며 이 줄에서 동일한 오류가 발생했습니다.

driver = webdriver.Chrome(ChromeDriverManager().install())

이 문제를 해결하기 위해 Chrome 창 -> 설정 -> Chrome 정보 -> Chrome 업데이트를 열었습니다. 또는 브라우저에서 chrome://settings/help를 입력하세요.

새 버전의 Chrome 빌드가 완료된 후에는 동일한 줄에서 더 이상 오류가 생성되지 않습니다.

물론 이는 Google이 문제의 원인이 되는 버그를 수정한 새 버전의 Chrome을 출시한 이후에만 작동했습니다.

관련 정보