Подтвердить что ты не робот

Selenium ChromeDriver не распознает недавно скомпилированный безголовый хром (Python)

Я пытаюсь использовать новую (2016) безголовую версию Chromium с Selenium/ChromeDriver (в прошлом я использовал Firefox с xfvb, но этот promises был намного лучше).

Я собрал безголовую версию Chromium из источников (я не нашел никаких предварительно созданных двоичных файлов) на основе инструкций, которые я нашел здесь и затем я использовал следующий код, чтобы запустить его через Selenium:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

l_option = Options()
l_option.add_argument('headless')
l_option.add_argument('disable-notifications')
l_option.binary_location = '/home/fi11222/Headless_Chromium/headless_shell'
l_driver = webdriver.Chrome(chrome_options=l_option)

Тот же код работает со стандартным хром (если я удалю опцию binary.location)

Как, однако, я получаю следующую ошибку:

selenium.common.exceptions.WebDriverException: Message: unknown error: unrecognized Chrome version: HeadlessChrome/59.0.3032.0
  (Driver info: chromedriver=2.27.440175 (9bc1d90b8bfa4dd181fbbf769a5eb5e575574320),platform=Linux 4.4.0-53-generic x86_64)

По-видимому, безголовый хром-бит компилируется с идентификатором версии, который ChromeDriver не распознает. Помощь!

Среда:

  • Компиляция: сервер Ubuntu 16.04
  • Выполнение селена: Linux Mint 18.1
4b9b3361

Ответ 1

ChromeHeadless распознается chromedriver с этот патч (созданный после того, как вы опубликовали сообщение), который доступен только с хромирования 2.29 (выпущен в Апрель 2017 года). Убедитесь, что у вас есть этот исполняемый файл хромирования, доступный в PATH, и что Selenium выбирает его вместо любого другого хромированного ребра, который у вас может быть доступен.

Кроме того, обратите внимание, что - согласно безгласной документации Chrome - вам нужно передать еще два флага:

l_option.add_argument('remote-debugging-port=9222')
l_option.add_argument('disable-gpu')

Как для предварительно созданных двоичных файлов безглавых Chrome - этот параметр доступен с Chrome 57, поэтому он поддерживается всеми версиями, распространяемыми в настоящее время через официальный репозиторий Google (т.е. стабильный Chrome 58 и неустойчивый Chrome 59). Это подчеркивание Chrome 59, поэтому ожидайте некоторые грубые грани до тех пор, пока функция не стабилизируется.