How to resolve error while installing ChromeDriverManager in Airflow Docker?

250 Views Asked by At

I am facing error while getting latest version of google-chrome. I have added the following necessary PYPI packages in docker.yaml file.

  1. selenium, 2. webdriver-manager, 3. chromedriver_autoinstaller, 4. chromedriver-py, 5. chromedriver, 6. webdriver_manager

Here is my code.

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service as ChromeService

chrome_options = webdriver.ChromeOptions()

chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--download-path=/opt/airflow')
chrome_options.add_argument('--no-gpu')
chrome_options.add_argument('--disable-extensions')
chrome_options.add_argument('--dns-prefetch-disable')

chrome_service = ChromeService(ChromeDriverManager().install())
driver = webdriver.Chrome(service=chrome_service, options=chrome_options)

This is the error I'm getting.

chrome_service = ChromeService(ChromeDriverManager().install())
  File "/home/airflow/.local/lib/python3.8/site-packages/webdriver_manager/chrome.py", line 40, in install
    driver_path = self._get_driver_binary_path(self.driver)
  File "/home/airflow/.local/lib/python3.8/site-packages/webdriver_manager/core/manager.py", line 40, in _get_driver_binary_path
    file = self._download_manager.download_file(driver.get_driver_download_url(os_type))
  File "/home/airflow/.local/lib/python3.8/site-packages/webdriver_manager/drivers/chrome.py", line 32, in get_driver_download_url
    driver_version_to_download = self.get_driver_version_to_download()
  File "/home/airflow/.local/lib/python3.8/site-packages/webdriver_manager/core/driver.py", line 48, in get_driver_version_to_download
    return self.get_latest_release_version()
  File "/home/airflow/.local/lib/python3.8/site-packages/webdriver_manager/drivers/chrome.py", line 64, in get_latest_release_version
    determined_browser_version = ".".join(determined_browser_version.split(".")[:3])
AttributeError: 'NoneType' object has no attribute 'split'
1

There are 1 best solutions below

1
On

You need to install chrome to your operating system, it can't find the driver because chrome has not been installed