Как добавить chromedriver в path linux

Обновлено: 01.07.2024

После того как Вы скачали исполняемый файл, нужно задать его местоположение. Без этого при инициализации драйвера

возникнет IllegalStateException: "The path to the driver executable must be set by the webdriver.chrome.driver system property;" .

Задать местоположение ChromeDriver сервера можно несколькими способами:

  • установив System.setProperty("webdriver.chrome.driver", PATH_TO_CHROMEDRIVER_EXE); ;
  • добавив путь к исполняемому файлу в переменную среды PATH (скорее всего после изменения переменной понадобится перезапуск IDE разработки).

Класс ChromeDriver запускает исполняемый файл во время своего создания и останавливает его при вызове метода quit(). Несмотря на то, что ChromeDriver сервер достаточно легковесный, его повторные запуск и остановка добавляют заметную задержку для тестов, в которых драйвер инициализируется для каждого тестового метода. Чтобы избежать этой проблемы, Вы можете использовать один из следующих способов:

  1. напрямую управлять запуском и остановкой ChromeDriver сервера с помощью ChromeDriverService:
  2. Запустить ChromeDriver сервер сам по себе перед запуском тестов, и подключиться к нему с помощью Remote WebDriver

Запуск браузера с параметрами

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

Полный список возможный флагов можно посмотреть здесь.


Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/u0420283/data/www/internetka.in.ua/wp-includes/class-wp-comment-query.php on line 405

4 комментариев

Добрый день.
Подскажите, пожалуйста, возможно уже сталкивались с такой ошибкой:

При запуске одного и того же кода (например, тот что описан выше), который выполняет автотест на хроме, система на одной машине хром запускает без проблем, берет URL и спокойно переходит по нему и дальше по логике теста. А на другой машине, тупо стопорится, в данном случае на строке:

Добрый день, совпадают ли версии браузеров, путь к ним на машинах?

Татьяна, ваш способ запуска хрома с использованием сервиса usingAnyFreePort() запускает у меня несколько окон с браузерами на разных портах. Одновременно открываются 3 окна. Можно ли этого избежать? Нужно только одно окно для последовательного запуска тестов

После загрузки zip файла я распаковал zip файл в папку для загрузки. Затем я помещаю путь к исполняемому двоичному файлу (C:\Users\michael\Downloads\chromedriver_win32) в переменную среды "Путь".

Однако, когда я запускаю следующий код:

Но - как объяснялось выше - исполняемый файл (!) в пути. что здесь происходит?

ОТВЕТЫ

Ответ 1

Вы можете проверить, действительно ли он находится в PATH, если вы откроете cmd и введите chromedriver (при условии, что ваш исполняемый файл chromedriver все еще назван так) и нажмите Enter. Если появляется Starting ChromeDriver 2.15.322448 , PATH устанавливается соответствующим образом, и что-то происходит неправильно.

В качестве альтернативы вы можете использовать прямой путь к хронографу:

Итак, в вашем конкретном случае:

Ответ 2

Я вижу, что обсуждения все еще говорят о старом способе установки chromedriver, загружая двоичный файл и настраивая путь вручную.

Это можно сделать автоматически с помощью webdriver-manager

Теперь вышеуказанный код в вопросе будет работать просто с изменением ниже,

То же самое можно использовать для установки Firefox, Edge и т.д.

Ответ 3

В той же ситуации с версией сообщества pycharm, поэтому, как и для cmd, вы должны перезапустить свой идеал, чтобы перезагрузить переменные пути. Перезапустите свой идеал, и все должно быть хорошо.

Ответ 4

Нам нужно добавить строку пути, начинающуюся с буквы r перед строкой, для необработанной строки. Я протестировал этот путь, и он работает.

Ответ 5

(1) Загрузите chromedriver (как описано в этой теме ранее) и поместите (unzipped) chromedriver.exe в папку X:\Folder\of\your\choice

(2) Пример кода Python:

Примечания: (1) Примерный код (в ответе) может занять около 5 секунд, чтобы открыть браузер Firefox для указанного URL-адреса. (2) Консоль python будет показывать следующую ошибку, если нет сервера, уже запущенного на указанном URL-адресе или обслуживающего страницу с заголовком, содержащим строку "Django": assert "Django" в браузере.title AssertionError

Ответ 6

Когда вы разархивируете хромированный рекордер, укажите точное местоположение, чтобы вы могли его проследить позже. Ниже вы получаете правильный хромированный рекордер для своей ОС и затем разархивируете его в точное место, которое может быть предоставлено в качестве аргумента позже в вашем коде.

Ответ 7

Прежде чем добавить хромедрайвер в свой путь, убедитесь, что он имеет ту же версию, что и ваш браузер.

Если нет, вам нужно будет соответствовать версии: либо обновить/понизить ваш Chrome, и обновить/понизить ваш веб-драйвер.

Я рекомендую как можно больше обновлять вашу версию Chrome и соответствовать веб-драйверу.

Чтобы обновить Chrome:

  • В правом верхнем углу нажмите на три точки.
  • нажмите help → About Google Chrome
  • обновить версию и перезапустить Chrome

Примечание: новейший хромедрайвер не всегда соответствует новейшей версии хрома!

Теперь вы можете добавить его в PATH:

создайте новую папку где-нибудь на вашем компьютере, где вы будете размещать свои веб-драйверы. Я создал папку с именем webdrivers в C:\Program Files

Скопируйте путь к папке. В моем случае это был C:\Program Files\webdrivers

щелкните правой кнопкой мыши на this PC → properties :

enter image description here

  1. Щелкните правой кнопкой мыши Advanced System settings
  2. Нажмите Environment Variables
  3. В System variables нажмите на path и нажмите edit
  4. нажмите new
  5. вставьте путь, который вы скопировали ранее
  6. нажмите OK во всех окнах

Это оно! Я использовал Pycharm, и мне пришлось снова открыть его. Может быть, то же самое с другими IDE или терминалами.

Ответ 8

Если вы работаете с рамкой робота RIDE. Затем вы можете скачать Chromedriver.exe со своего официального сайта и сохранить этот.exe файл в каталоге C:\Python27\Scripts . Теперь укажите этот путь как переменную среды, например. C:\Python27\Scripts\chromedriver.exe .

Перезагрузите компьютер и снова запустите тот же тест. Вы не получите эту проблему снова.

Ответ 9

Ответ 10

Можно попробовать перезагрузить компьютер, если он не работает после того, как вы уверены, что PATH установлен правильно.

Ответ 11

В моем случае эта ошибка исчезает, когда я скопировал файл хромированной записи в папку c:\Windows. Его потому, что каталог Windows находится в пути, на котором скрипт python проверяет наличие хромирования.

Ответ 12

Если вы используете удаленный интерпретатор, вы должны также проверить, определен ли его исполняемый PATH. В моем случае переключение с удаленного интерпретатора Docker на локальный интерпретатор решило проблему.

Ответ 13

Проверьте ваш путь для драйвера Chrome, он может не получить его оттуда. Просто скопируйте и вставьте местоположение драйвера в код.

Ответ 14

Изменение кода, как указано ниже, работает для меня:

driver = webdriver.Chrome("путь к /chromedriver.exe")

Ответ 15

Я столкнулся с той же проблемой, что и у вас. Я использую PyCharm для написания программ, и я думаю, что проблема заключается в настройке среды в PyCharm, а не в ОС. Я решил проблему, перейдя к настройке скрипта, а затем вручную редактируя переменную PATH в переменных среды. Надеюсь, вы найдете это полезным!

Ответ 16

Добавьте веб-драйвер (chromedriver.exe или geckodriver.exe) здесь C:\Windows. Это сработало в моем случае

Ответ 17

Наилучшим способом может быть получение текущего каталога и добавление к нему оставшегося адреса. Как этот код (Word на Windows. В Linux вы можете использовать что-то строковое pwd): webdriveraddress = str(os.popen("cd").read().replace("\n", ''))+'\path\to\webdriver'

Ответ 18

Когда я скачал chromedriver.exe, я просто переместил его в папку PATH C:\Windows\System32\chromedriver.exe, и у меня возникла точно такая же проблема.

Для меня решение было просто изменить папку в PATH, поэтому я просто переместил ее в папку bin сообщества Pycharm, которая также была в PATH. например:

Ответ 19

Ответ 20

Была эта проблема с Mac Mojave, работающей с тестовой средой Robot и Chrome 77. Это решило проблему. Слава @Navarasu за указание на правильный путь.

Далее в приглашении Python:

Это приводит к следующей ошибке:

  • Теперь я получил новейшую ссылку для скачивания
    • Загрузите и распакуйте chromedriver туда, куда вы хотите
    • Например:

    /.bash_profile с помощью редактора и добавьте:

    Открыть новое окно терминала, та-да 🎉

    Ответ 21

    я добавил chromedriver в папку usr/local/bin и все еще получаю ошибки
    Traceback (последний вызов был последним): Файл "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/common/service.py", строка 72, в начале self.process = subprocess.Popen(cmd, env = self.env, Файл "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py", строка 854, в init self._execute_child (args, исполняемый файл, preexec_fn, close_fds, Файл "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py", строка 1702, в _execute_child поднять child_exception_type (errno_num, err_msg, err_filename) FileNotFoundError: [Errno2] Нет такого файла или каталога: 'chromedriver'

    Во время обработки вышеуказанного исключения произошло другое исключение:

    Попытка использовать Selenium с Chrome в скрипте python.

    Я получаю следующую ошибку:

    Я знаю расположение исполняемого файла chromedriver. Как мне добавить его в PATH?

    2 ответа

    Я пытаюсь запустить drone (chromedriver) с пользовательскими аргументами и расширениями. Однако я не смог правильно настроить arquillian.xml для того, чтобы браузер работал с ними installed/configured. arquillian.xml: . <extension qualifier=webdriver> <property.

    Вы можете указать абсолютный путь к драйверу chrome в своем скрипте как таковой:

    Или вы можете добавить путь к вашему webdriver в системную переменную PATH следующим образом:

    Вы можете добавить приведенную выше строку в свой файл /home/<user>/.profile , чтобы сделать его постоянным.

    Проверено на Ubuntu 17.10 под управлением Python 2.7.14

    Надеюсь, это поможет!

    Решение, опубликованное @AnythingIsFine, действительно правильное.

    Однако в моем случае мой pytest все еще не смог найти chromedriver (несмотря на то, что он был правильно добавлен в PATH и из terminal я мог его выполнить).

    Поэтому я решил проблему, добавив псевдоним chromedriver в каталог /usr/bin :

    Похожие вопросы:

    tl;dr: кто-нибудь знает, как передать путь chromedriver к selenium-webdriver в коде без установки переменной окружения PATH? Я пытаюсь использовать selenium-webdriver с chrome,но предпочел бы.

    Я хочу добавить несколько путей в переменную $path, например java path и php path . как это сделать в linux? Я делаю что-то в bash_profile, например .

    Может ли кто-нибудь сказать мне, как использовать драйвер Chrome в Selenium для платформы Linux? У меня есть мое местоположение драйвера chrome по адресу username/home/chromedriver . Мой код таков.

    После форматирования сервера Redhat (Amazon-flavored Linux) и переустановки python, selenium, pyvirtualdisplay, Xvfb, Chrome и Chromedriver я столкнулся с ошибкой.

    Я пытаюсь запустить drone (chromedriver) с пользовательскими аргументами и расширениями. Однако я не смог правильно настроить arquillian.xml для того, чтобы браузер работал с ними.

    Я пытаюсь запустить тестовый кейс selenium с помощью браузера chromium в linux .. Шаг к настройке браузера chromium в linux : скачал chrome-linux.zip из приведенного ниже пути и извлек в машину.

    Я пытался использовать selenium webdriver с Google Chrome. Я установил chromedriver и установил путь к нему. Это было сделано правильно, так как при запуске chromedriver в terminal я получаю вывод.

    У меня есть windows64 битная машина, и я загрузил chromedriver в том точном месте, где он должен быть, и мой путь к файлу таков.


    Как обновить python в виртуальной среде?
    Доброго времени суток! Подскажите как корректно обновить Python 2.7.3 в среде virtualenv до 3.2.

    Установка WIFI карты в виртуальной среде
    Доброго времени суток! С чего начать то? root@kali:

    Определить запущена ли программа в виртуальной среде
    Как определить, что код выполняется на виртуальной машине?

    В чем разница между виртуальной и чисто виртуальной функцией?
    в чем разница между виртуальной и чисто виртуальной функцией? virtual void print() virtual.

    Message: 'chromedriver' executable needs to be in PATH Сервер на линуксе? Можно полный путь который указавыете? сервер на линуксе.
    скачал хромдрайвер для линукса. закачал его на сервер в папку, где и сам проект. пробовал такие варианты:

    всегда одна и таже ошибка: не тот путь или нет файла.

    Новая ошибка. Нет доступа?

    Добавлено через 14 минут

    Добавлено через 10 минут
    вроде дал доступ на исполнение:

    Посмотрите кому принадлежит файл и какое у него установлены доступы. Я думаю, что ему просто не хватает прав на исполнение.

    ls -l <путь к chromedriver>
    что выведет?

    Добавлено через 4 минуты

    Не знал, что именно нужно. Сделал два варианта:

    я думал он использует файл закаченный на сервер для запуска браузера.
    про установку ничего не находил.

    Добавлено через 4 минуты
    не подскажешь инструкцию? или это админа сервера просить установить?

    Решение

    chromedriver - это только драйвер, ему все равно нужен сам хром. Более того, версия драйвера должна совпадать с установленным хромом.

    На сервер нужно установить хром, самостоятельно или кого-то попросить. Если возможности установить хром на сервере нет, также возможно использовать драйвер удаленно по сети, но это вносит некоторые задержки и урезает определенный функционал.

    спасибо, но админ сервера говорит, что хром установлен) и пытает меня какой путь я указал, куда драйвера положил..

    Решение

    Если хром установлен - нужно узнать куда, спросите или узнайте путь к исполняемому файлу хрома.

    Добавлено через 3 минуты
    после этого, попробуйте вот так

    "//" используется в winbows, "/" в Linux
    Не надо никакие пути к хрому. Проверить только установлен он или нет. Если все ок, добавить опции что бы хром запускался в безоконном режиме. Немного терпения и я скину настройки Ensure Chromium/Google Chrome is installed in a recognized location
    ChromeDriver expects you to have Chrome installed in the default location for your platform. You can also force ChromeDriver to use a custom location by setting a special capability.

    а как я могу проверить не имея пути к хрому?

    установка из консоли - sudo apt-get install chromium-browser


    Java-Selenium-ChromeDriver
    Сори если уж слишком туповатый вопрос но не могу не нагуглить не на форуме отыскать! как.

    Работа с Selenium и ChromeDriver
    Собственно скачал через Проект-&gt;управление пакетами Selenium.WebDriver и.

    Chromedriver без консоли (pyinstaller)
    options = Options() options.add_experimental_option(&quot;excludeSwitches&quot;,).

    Proxy с авторизацией Selenium (ChromeDriver)
    Добрый день. Подскажите, как можно завести прокси с авторизацией на Selenium ? Пробовал так: .

    Java ChromeDriver не запускается из консоли NoSuchMethodError
    Java ChromeDriver не запускается из консоли NoSuchMethodError Есть простой код, который.

    Selenium chromedriver выдает критическую ошибку в headless режиме
    Без headless все работает без ошибок. Как только добавлю --headless, вылетает критическая ошибка: .

    Читайте также: