Использование chromedriver с селеном/python/ubuntu

Я пытаюсь выполнить некоторые тесты с помощью chromedriver и попытался использовать следующие методы для запуска chromedriver.

driver = webdriver.Chrome('/usr/local/bin/chromedriver')

и

driver = webdriver.Chrome(executable_path='/usr/local/bin/chromedriver')

и

import os
from selenium import webdriver

chromedriver = "/usr/local/bin/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get("http://stackoverflow.com")

Но ни одна из них не помогает, и ошибка: selenium.common.exceptions.WebDriverException: Message: 'ChromeDriver executable needs to be available in the path.

Я проверил несколько раз и chromedriver присутствует в местоположении /usr/local/bin.

Тем не менее мои скрипты не работают. Может ли помочь какой-либо орган.

Мое местоположение google-chrome:/usr/bin/google-chrome

Ответ 1

Следуя предложению https://askubuntu.com/questions/539498/where-does-chromedriver-install-to, я смог заставить его работать следующим образом:

  • Установлен хром-хромированный рекордер:

    sudo apt-get install chromium-chromedriver
    
  • Добавление пути к линии селена:

    driver = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver")
    

Обратите внимание, что это открывает Chromium, а не Chrome. Надеюсь, это было полезно.

Ответ 2

Я решил проблему следующим образом:

  1. Откройте терминал и напечатайте whereis chromedriver. В моем случае у меня был следующий вывод:

    chromedriver: /usr/local/bin/chromedriver

  2. Скопируйте этот путь и отредактируйте ваш экземпляр Webdriver следующим образом:

driver = webdriver.Chrome('/usr/local/bin/chromedriver')

Этого должно быть достаточно!

Ответ 3

Обычно должно работать следующее:

driver = webdriver.Chrome(executable_path='/usr/local/bin/chromedriver')

Обратите внимание, что в вашем вопросе не было предшествующего "/" пути.

Кроме того, убедитесь, что исполняемый файл хромированной записи, расположенный в /usr/local/bin/, имеет соответствующие права доступа к файлу, то есть его можно выполнить:

> chmod 777 /usr/local/bin/chromedriver

Ответ 4

Как говорится в сообщении: исполняемый файл ChromeDriver должен быть доступен в пути.

Так оно на пути? Каков результат:

$ cd
$ chromedriver --version

Если вы не видите версию, chromedriver окончательно не находится в PATH.

Я не скажу webdriver, где найти chromedriver в противном случае. - Я использую пакет Ubuntu "chromium-chromedriver", но он отбрасывает двоичный файл в /usr/lib/chromium-browser/chromedriver, который не находится в моем PATH. Поэтому я помещал мягкую ссылку в /usr/bin.

Ответ 5

Вам нужно убедиться, что автономный двоичный код ChromeDriver находится либо в вашем пути, либо доступен в переменной среды webdriver.chrome.driver, а затем попытается использовать абсолютный путь к этому двоичному файлу. Ниже приведен код java -

    File chromeDriver = new File("/usr/bin/chromedriver");
    System.setProperty("webdriver.chrome.driver", chromeDriver.getAbsolutePath());
    driver = new ChromeDriver();

Ответ 6

Просто передайте в качестве аргумента двоичное местоположение, а не только каталог, содержащий его. Так что, если он находится в каталоге /usr/bin, выполните следующую команду:

driver = webdriver.Chrome("/usr/bin/chromedriver")

Это работает для меня в Ubuntu и добавление пути к bashrc не работает. Попробуйте.

Ответ 7

надеюсь, что это будет полезно для тех, кто мне понравился. Для моего случая я оставил предыдущую косую черту в пути "home/user/chromedriver" вместо "/home/user/chromedriver"