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

Я хочу использовать роботизированный фреймворк с Google Chrome. Как-то хромодрайвер не находит бинарник 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 в стандартном месте? пробелы в хромированном пути?

Kiril S. 27.10.2018 03:15

Если вы в командной строке набираете chrome и нажимаете return, запускается ли Chrome?

Bryan Oakley 27.10.2018 03:44

@BryanOakley, что он проверит, запускается ли Chrome ИЛИ не после нажатия команды в Chrome?

Dev 27.10.2018 06:57

Проверить это обсуждение stackoverflow.com/questions/50138615/…

DebanjanB 27.10.2018 10:15

@DebanjanB упомянутое обсуждение не описывает, как я использую его в робототехнике. Мне непонятно, куда интегрировать этот хак.

jerik 27.10.2018 11:42

@Dev - он проверит, находится ли chrome на вашем пути. Если он не запускается и вместо этого выдает ошибку, значит, его явно нет в вашем PATH.

Bryan Oakley 27.10.2018 13:33

В OSX Chrome находится в /Applications/Chrome.app/Contents/MacOS/Google Chrome. Я добавил каталог к ​​пути и добавил псевдоним chrome / Chrome для Google Chrome. В моей оболочке Chrome открывается, когда я использую команды псевдонима, но он не работает для моего теста pybot. Все еще то же сообщение об ошибке. Немного странно добавлять псевдоним, чтобы можно было получить доступ к стандартной установке Chrome ... Имеет ли значение, что я использую zsh в качестве оболочки? Где я могу получить информацию, в каких местах chromedriver проверяет местоположение Chrome?

jerik 27.10.2018 18:48

Раньше была ошибка в селене, он не мог обработать путь с пробелами. Не знаю, исправили ли это (можно погуглить). Но в этом случае следует указать путь к двоичному файлу chrome. Проверьте это решение: stackoverflow.com/a/45503916/5318223

Kiril S. 27.10.2018 20:41

@jerik Для получения информации о какие местоположения chromedriver проверяет местоположение Chrome проверьте обсуждения Как в Selenium исполняемый файл ChromeDriver находит браузер Chrome? и Какое расположение по умолчанию для ChromeDriver и для установки Chrome в Windows

DebanjanB 27.10.2018 21:43

@DebanjanB отличный намек! Я изменил расположение Chrome в файловой системе с /Applications/Chrome.app/Contents/MacOS/Google Chrome на /Applications/Google Chrome.app/Contents/MacOS/Google Chrome. Это помогло. Теперь все работает как положено. На основе информации Как в Selenium исполняемый файл ChromeDriver находит браузер Chrome?> Требования к хромированной отвертке

jerik 27.10.2018 21:57
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
10
3 109
1

Ответы 1

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

Хромированный драйвер ищет браузер Chrome в OSX по адресу

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

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

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

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

Другие вопросы по теме