Arhn - архитектура программирования

chromedriver не находит двоичный файл Google Chrome с помощью robotframework

Я хочу использовать robotframework с Google Chrome. Почему-то chromedriver не находит бинарный файл Google Chrome:

WebDriverException: Message: unknown error: cannot find Chrome binary

Когда я пытаюсь запустить свой тест с Firefox, он работает нормально. Я искал в сети некоторые решения, но находил только статьи, указывающие путь к chromedriver, но не к бинарному файлу Google Chrome.

Вот что я установил.

pybot --version
Robot Framework 3.0.4 (Python 3.5.4 on darwin)

Код для выполнения с pybot: google.robot

*** Settings ***
Documentation  Hello World for robotframwork with headless chrome
Library  SeleniumLibrary
#Library  OperatingSystem
#Suite Setup  Setup chromedriver
### https://stackoverflow.com/questions/28537290/how-to-set-path-chrome-driver-in-robot-framework

#*** Keywords ****
#Setup chromedriver
   #Set Environment Variable  webdriver.chrome.driver  /usr/local/bin/chromedriver
   #Set Environment Variable  webdriver.chrome.binary  /Applications/Chrome.app/Contents/MacOS/Google\ Chrome

*** Test Cases ***
User shall call google and make a screenshot
    [Documentation]  First test
    [Tags]  Headless
    #Open Browser  https://google.com  ff
    Open Browser  https://google.com  gc
    #Open Browser  https://google.com  headlesschrome
    Capture Page Screenshot
    Close All Browsers

Когда я запускаю этот код, я получаю следующее:

pybot google.robot
==============================================================================
Google :: Hello World for robotframwork with headless chrome
==============================================================================
User shall call google and make a screenshot :: First test            | FAIL |
WebDriverException: Message: unknown error: cannot find Chrome binary
  (Driver info: chromedriver=2.43.600229 (3fae4d0cda5334b4f533bede5a4787f7b832d052),platform=Mac OS X 10.11.6 x86_64)
------------------------------------------------------------------------------
Google :: Hello World for robotframwork with headless chrome          | FAIL |
1 critical test, 0 passed, 1 failed
1 test total, 0 passed, 1 failed
==============================================================================
Output:  /Users/foo/workspace/robotframework/output.xml
Log:     /Users/foo/workspace/robotframework/log.html
Report:  /Users/foo/workspace/robotframework/report.html

  • Chrome в стандартном месте? пробелы в хромовом пути? 27.10.2018
  • Если вы в командной строке набираете chrome и нажимаете клавишу возврата, запускается ли хром? 27.10.2018
  • @BryanOakley, что он проверит, если хром запустится ИЛИ не после нажатия команды в хроме? 27.10.2018
  • Проверьте это обсуждение stackoverflow.com/questions/50138615/ 27.10.2018
  • @DebanjanB упомянутое обсуждение не описывает, как я использую его в robotframework. Мне непонятно, куда интегрировать этот хак. 27.10.2018
  • @Dev - он проверит, находится ли chrome на вашем пути. Если он не запускается и вместо этого выдает ошибку, то его явно нет в вашем PATH. 27.10.2018
  • В OSX Chrome находится под /Applications/Chrome.app/Contents/MacOS/Google Chrome. Я добавил каталог в путь и добавил псевдоним chrome/Chrome для Google Chrome. В моей оболочке Chrome открывается, когда я использую команды псевдонимов, но не работает для моего теста pybot. Все то же сообщение об ошибке. Немного странно добавлять псевдоним, чтобы можно было получить доступ к стандартной установке Chrome ... Имеет ли значение, что я использую zsh в качестве оболочки? Где я могу получить информацию о том, какие местоположения chromedriver проверяет на наличие местоположения Chrome? 27.10.2018
  • Раньше в селене была ошибка, он не мог обрабатывать путь с пробелами. Не знаю, было ли это исправлено (можно погуглить). Но если это так, предоставление двоичного пути chrome должно помочь. Проверьте это решение: stackoverflow.com/a/45503916/5318223 27.10.2018
  • @jerik Информацию о том, какие места chromedriver проверяет на наличие местоположения Chrome, см. в обсуждениях Как в Selenium исполняемый файл ChromeDriver находит браузер Chrome? и Какое расположение ChromeDriver по умолчанию и для установки Chrome в Windows 27.10.2018
  • @DebanjanB отличный намек! Я изменил свое местоположение Chrome в файловой системе с /Applications/Chrome.app/Contents/MacOS/Google Chrome на /Applications/Google Chrome.app/Contents/MacOS/Google Chrome. Это помогло. Теперь работает как хотелось. Основываясь на информации Как в Selenium исполняемый файл ChromeDriver находит браузер Chrome?Требования к драйверу Chrome 27.10.2018

Ответы:


1

Основываясь на комментарии @DebanjanB, я нашел свое решение.

Chromedriver ищет браузер Chrome в OSX по адресу

/Applications/Google Chrome.app/Contents/MacOS/Google Chrome

Chrome был установлен на моем OSX на:

/Applications/Chrome.app/Contents/MacOS/Google Chrome

В моей файловой системе я переименовал Chrome.app в Google Chrome.app, и с этого момента все заработало. Для любой другой ОС см. требования к драйверу Chrome.

27.10.2018
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..