#python-3.x #google-chrome #robotframework
#python-3.x #google-chrome #robotframework
Вопрос:
Я наблюдаю приведенную ниже ошибку при запуске открытого тестового примера браузера Chrome с использованием robot framework.
WebDriverException: Сообщение: неизвестная ошибка: Chrome не удалось запустить: произошел аварийный выход
(неизвестная ошибка: файл DevToolsActivePort не существует)
(Процесс, запущенный из chrome location / usr / bin / google-chrome, больше не запущен, поэтому ChromeDriver предполагает, что Chrome разбился.) (Информация о драйвере: chromedriver = 72.0.3626.69 (3c16f8a135abc0d4da2dff33804db79b849a7c38), платформа = Linux 4.4.0-31-generic x86_64)
вставил скрипт робота ниже :
*** settings ***
Library Selenium2Library
*** Variables ***
${Browser} Chrome
${URL} https://www.google.com
*** Test Cases ***
TC001 Browser Start and Close
Open Browser ${URL} ${Browser}
используемые версии chrome :
- Версия Chrome 72
- ChromeDriver 72.0.3626.69
Ответ №1:
Я решил это! используя --no-sandbox
${chrome_options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver
Call Method ${chrome_options} add_argument test-type
Call Method ${chrome_options} add_argument --disable-extensions
Call Method ${chrome_options} add_argument --headless
Call Method ${chrome_options} add_argument --disable-gpu
Call Method ${chrome_options} add_argument --no-sandbox
Create Webdriver Chrome chrome_options=${chrome_options}
Вместо
Open Browser about:blank headlesschrome
Open Browser about:blank chrome
Комментарии:
1. Боже, у меня это сработало. Моя ситуация такова, что у нас есть конвейер, который использует образ Ubuntu и запускает robot framework. На моем локальном Mac это работает только с использованием открытого браузера, но не на образе Ubuntu с помощью docker. В любом случае, сейчас это работает. Я попробовал несколько других вариантов, но этот был единственным, который работал. Спасибо!
Ответ №2:
Вот подход, который сработал для меня. Мы должны передать chrome_options и путь к веб-драйверу chrome при открытии браузера. Пожалуйста, найдите код ниже.
*** Settings ***
Library Selenium2Library
*** Variables ***
${URL} https://www.google.com
${CHROMEDRIVER_PATH} /usr/local/bin/chromedriver
*** Keywords ***
Open Website
${chrome_options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver
Call Method ${chrome_options} add_argument --no-sandbox
Call Method ${chrome_options} add_argument --headless
Open Browser ${URl} chrome options=${chrome_options} executable_path=${CHROMEDRIVER_PATH}
*** Settings ***
Suite Setup Open Website
ПРИМЕЧАНИЕ: chrome_options и executable_path были переданы непосредственно в команду Открыть браузер вместо создания веб-драйвера (Потому что по какой-то причине создание веб-драйвера у меня не сработало. Но передача аргументов непосредственно в браузер сделала)
Комментарии:
1. Я не могу открыть браузер, потому что я планирую запустить это в gitlab CI
2. У нас есть
--headless
аргумент. Поэтому в идеале он должен запускаться в CI Gitlab в безголовом режиме.
Ответ №3:
Вам также необходимо обновить Selenium, который вы получите, если используете новейшую версию SeleniumLibrary (из названия было удалено «2»).
Обновите свои скрипты для нового имени и обновите с помощью:
pip install -U robotframework-seleniumlibrary
Ответ №4:
Попробуйте изменить драйвер Chrome на версию 2.45 на основе http://chromedriver.chromium.org/downloads версия 72 поддерживается 2.45. 🙂