2016-07-03 2 views
7

Short:Как разрешить ошибку «ошибка хромированного исполнителя в PATH» при запуске Selenium Chrome с использованием virtualenv в PyDev?

Начитавшись Управление браузера с селеном модулем в https://automatetheboringstuff.com/chapter11, я пытаюсь запустить драйвер Селена Chrome в виртуальной среде с PyDev. Мне удалось это сделать из-за пределов PyDev, а изнутри, я получаю:

selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.

Long:

Я использую Linux Debian 3.10.11-1.

https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/, прежде чем начать с PyDev, I. , ,

  1. Настройка виртуальной среды с virtualenv

    1. Installed virtualenv

      pip install virtualenv
    2. Сделано каталог для моего проекта

      cd ~/temp/
      mkdir my_project
      cd my_mproject
    3. создал виртуальную среду под названием env

      virtualenv env
    4. активировал его.

      source env/bin/activate
    5. Пошел в интерактивном режиме Python, чтобы сказать себе, какую версию Python я использую

      python
      Python 2.7.12rc1 (default, Jun 13 2016, 09:20:59) 
      [GCC 5.4.0 20160609] on linux2
  2. выбрасываемые из interacive режима и установлен Selenium материал

    1. Первый модуль

      pip install selenium
    2. После предложение на https://groups.google.com/forum/#!topic/obey-the-testing-goat-book/Ty4FQoV3S0Q, установленный chromedriver

      1. cd env/bin/
      2. wget http://chromedriver.storage.googleapis.com/2.22/chromedriver_linux64.zip
      3. unzip chromedriver_linux64.zip
  3. написал небольшой скрипт, чтобы увидеть, если он будет работать

    from selenium import webdriver 
    driver = webdriver.Chrome()

    Ран его. Открылось окно браузера Chrome. Отлично.

Теперь, чтобы попробовать его в PyDev:

Примерно следующее https://www.caktusgroup.com/blog/2011/08/31/getting-started-using-python-eclipse/. , ,

  1. установлен Eclipse (Неон)

  2. Установленная PyDev

  3. Изнутри Eclipse, создал новый проект (File МЕНЮ>новый проект>Генеральному>Project , ввело Название проекта и щелкнуло Finis ч).

  4. Назад в командной строке (потому что я еще не узнал, как это сделать из Eclipse и PyDev): cd 'в корневой каталог моего нового проекта и создал виртуальную среду.

  5. Как и раньше, еще в командной строке, я активировал виртуальную среду нового проекта и установлен модуль Selenium, а затем исполняемый файл chromedriver, который пришел из файла chromedriver_linux64.zip.

  6. Назад в Eclipse, я подписал свой проект, чтобы использовать виртуальную среду, которую я предполагаю в Pydev жаргоне называется не виртуальной средой, а переводчик:

    1. Окно Меню>Предпочтения>Pydev>интерпретаторы>Python переводчиков>Добавить.

    2. Дал переводчику имя.

    3. Для интерпретатора Executable, я выбрал python2.7 файл в bin директории виртуальной среды моего проекта в

    4. правой кнопкой мыши на мой проект, выберите Свойства>Pydev - Переводчик/Грамматика> Под Переводчик выбрал мой новый интерпретатор>OK.

  7. Дал мне проект того же сценария. , ,

    from selenium import webdriver 
    driver = webdriver.Chrome()

    и запустил его, нажав на Run меню>Run As>Python Run.

    Теперь, однако, вместо открытия окна веб-браузера Chrome, я получаю только сообщение в консоли в Eclipse:

    selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.

Чтобы получить окно веб-браузера для когда я запускаю тот же скрипт из командной строки, я пробовал:

  • , добавляя папку bin виртуальной среды (потому что это файл chromedriver) для интерпретатора.

  • удаление интерпретатора и создание его нового.

  • копирование chromedriver в тот же каталог, где находится мой скрипт. Нет разницы.

  • добавив файл chromedriver_linux64.zip, который я загрузил в интерпретатор. По-прежнему такая же ошибка.

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

Как я могу получить этот «chromedriver» в «PATH» в PyDev, чтобы запустить сценарий из Eclipse?

ответ

1

Не уверен, что это лучшее, что нужно сделать, но я нашел что-то, что работает: я добавил к своему интерпретатору уже доступную переменную с именем PATH, и я редактировал значение этой переменной, чтобы включить относительный путь в каталог bin виртуальной среды моего проекта (то есть каталог, в котором сохранен исполняемый файл chromedriver).

Более точно:

  1. Window меню в Eclipse,>Preferences>Pydev на левом>Переводчиков>Python интерпретаторы.

  2. Выбранный интерпретатор, который я создал ранее для моего проекта (как descibed в вышеуказанном вопросе)

  3. Switched от найти библиотеки для окружающей среды в нижней половине Preferences окно

  4. Нажмите на кнопку Выбрать ... кнопка справа.

    Список Появилась переменная среды.

  5. Прокрутил вниз по списку и нашел один по имени PATH. Выбрали его и нажмите кнопку OK.

    Оно и его значение (/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games) появились в противном случае пустым списком.

  6. Я выбрал его и нажал на Edit ...

    Его имя и значение стало доступным для редактирования.

  7. В правом конце значения я добавил :env/bin (т. Е. Относительный путь из каталога, содержащего мой сценарий, в каталог bin виртуальной среды моего проекта).

  8. Нажал OK, чтобы вернуться к Preferences окна>Применить в Preferences окно>OK чтобы закрыть предпочтения окно.

  9. Ран программу из в Eclipse (выбранный файл сценария>Run меню>Run As>Python Run).

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

Отлично.

+0

Шаги от 1 до 3 работали для меня, а затем в Python Interpreters, в среде, я мог нажать «Создать», создать переменную: например. «chromedriver» со значением: «/ usr/local/bin», а затем нажмите «Применить» и «ОК». Чтобы узнать больше о пути значений, вы можете проверить, где находится ChromeDrive в вашей системе. На Mac это обычно можно найти в «/ usr/local/bin/chromedriver». – CubeBot88

0

Если все попытки поставить chromedriver в вашем PATH терпят неудачу, вы также можете передать путь к исполняемому файлу для webdriver.Chrome() как так:

chromedriver_loc = '/path/to/chromedriver' 
driver = webdriver.Chrome(executable_path=chromedriver_loc) 

Это было мое окончательное решение при попытке запустить chromedriver из virtualenv.

 Смежные вопросы

  • Нет связанных вопросов^_^