Использование 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
Я решил проблему следующим образом:
-
Откройте терминал и напечатайте whereis chromedriver
. В моем случае у меня был следующий вывод:
chromedriver: /usr/local/bin/chromedriver
-
Скопируйте этот путь и отредактируйте ваш экземпляр 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"