Ошибка "Не удается получить расширение автоматизации" в Chrome без головы с Selenium (Ubuntu)
Я установил последнюю версию Google Chrome 57.0.2987.110 на свой сервер Ubuntu (16.04). Я использую купол (который является оберткой F# для Selenium). Я поместил последний chromedriver в ту же папку, что и мой бинарный файл, версия: 2.28.455506 (и я установил правильный путь к драйверу).
Я начинаю хром с --headless
аргумент, как это:
let chromeOpts = ChromeOptions ()
chromeOpts.AddArgument "--headless"
chromeOpts.AddArgument "--disable-gpu"
chromeOpts.AddArgument "start-maximized"
start <| ChromeWithOptions chromeOpts
Как только он запускается, я получаю эту ошибку:
[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidOperationException: неизвестная ошибка: не удается получить расширение автоматизации из-за неизвестной ошибки: не удалось найти страницу: chrome-extension://aapnijgdinlhnhlmodcfapnahmbfebeb/_generated_background_page.html (информация сеанса: содержимое оболочки содержимого =) ((: chromedriver=2.28.455506 (18f6627e265f442aeec9b6661a49fe819aeeea1f), платформа =Linux 4.4.0-64-родовой x86_64) в OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError (OpenQA.Selenium.Remote.Response errorResponse) [0x000d5] в <2096f357ed27440a8e98c8a8dd645cdd>:0 в OpenQA.Selenium.Remote.RemoteWebDriver.Execute (System.String driverCommandToExecute, System.Collections.Generic.Dictionary`2[TKey,TValue] параметры) [0x00046] в <2096f357ed27440a8e98c8aDedeeEedeccDaDeeeee..InternalExecute (System.String driverCommandToExecute, System.Collections.Generic.Dictionary 2[TKey,TValue] параметры) [0x00000] в <2096f357ed27440a8e98c8a8dd645cdd>:0 в OpenQA.Selenium.Remote.RemoteWindow.set_Size (значение System.Drawing.Size) [0x00067] в <2096f357ed27440a8e98c8a8dd645cdd>:0 в canopy.core.pin (canopy.types+ направление направление) [0x0002f] в <58c4b5b9d8107025a7450383b9b5c458>:0 в canopy.core.start (canopy.types+BrowserStartMode b) [0x0050c] в <58c4b5b9d8107025a7450383b9b5c458>:0
Кажется, что он не может установить размер окна. Это правильный способ запустить Chrome без головы? Я где-то читал, что в новейшей версии есть функция без головы. Поскольку я использую новейшую версию Google Chrome и chromedriver, я думаю, что это не должно быть несовпадением версий.
Также он отлично работает на локальной машине с Windows 10 с той же версией chromedrive (только для Windows).
2 ответа
Запуск с командой (и без аргумента без заголовка):
DISPLAY=:1 xvfb-run mono myapp.exe
Кажется, работает. Я думаю, что это решает мою проблему. Я оставляю это здесь для других, ищущих способ запустить хром без головы и имеющих ту же самую проблему.
Это решение исходит от: http://coderscoffeehouse.com/tech/2017/01/17/headless-front-end-testing-on-linux-using-fsharp.html
На эту тему открыт вопрос Chromium. Говорится:
В настоящее время безголовый режим не поддерживает расширения, и неясно, можем ли мы их легко поддерживать - хотя мы проводим некоторый первоначальный анализ выполнимости.
Как предлагает @mateuszlewko, X Virtual Framebuffer (XVFB) можно использовать в качестве обходного пути для Linux.