Мы рассматриваем возможность обновления нашего производственного сервера с Ubuntu- desktop 10.04 до Ubuntu- server 12.04.
У нас есть различные службы, работающие на нашей текущей настольной ОС, такие как Selenium Web Driver. У меня вопрос: можно ли запустить Selenium Web Driver из системы на основе cli?
Я сразу же подумал, что это невозможно, потому что он полагается на Firefox, но я бы хотел, чтобы кто-нибудь доказал, что я неправ!
Ответы:
Вы ищете безголовый браузер.
Да, можно запустить Selenium в Firefox без головы. Вот сообщение, за которым вы можете следить.
Вот краткие инструкции по настройке Xvfb
источник
Xvfb
, а не для установки и настройки Selenium (для чего требуется наличиеgeckodriver
на пути).subprocess.Popen('Xvfb...')
илиos.system('Xvfb...')
, но обязательно сделайте это перед импортом webdriver.В Chrome теперь есть безголовый режим:
источник
Да. Вы можете использовать
HTMLUnitDriver
вместо этогоFirefoxDriver
при запуске webdriver. Это настройка безголового браузера. Подробности можно найти здесь .источник
Если вам нужна поддержка безголового браузера, вы можете принять другой подход.
https://github.com/detro/ghostdriver
Об этом было объявлено на конференции Selenium, и он все еще находится в разработке. Он использует PhantomJS в качестве браузера и намного лучше, чем HTMLUnitDriver, пока нет скриншотов, но он все еще находится в активной разработке.
источник
Необязательно использовать
pyvirtualdisplay
вот так:Более короткая версия:
Обычно это инкапсуляция Python
xvfb
, и в чем-то более удобная.Кстати, хотя
PhantomJS
это безголовый браузер, и при его использовании никакое окно не будет открываться, кажется, что для работыPhantomJS
все еще требуется среда графического интерфейса.У меня появляется код ошибки -6, когда я использую
PhantomJS()
вместоFirefox()
безголового режима (консоль, подключенная к шпатлевке). Однако в среде рабочего стола все в порядке.источник
ОБНОВЛЕНИЕ: вам больше не нужен XVFB для запуска безголового Firefox. Firefox v55 + в Linux и Firefox v56 + в Windows / Mac теперь поддерживает автономное выполнение.
Я добавил сюда некоторую практическую документацию:
https://developer.mozilla.org/en-US/Firefox/Headless_mode#Selenium_in_Java
источник
Другой вариант - GhostDriver, который теперь официально поддерживается WebDriver: фактический прирост производительности Ghostdriver.
источник
Имейте в виду, что веб-клиент HtmlUnitDriver является однопоточным, а Ghostdriver имеет только 40% функциональных возможностей, чтобы быть WebDriver.
Тем не менее, Ghostdriver работает правильно для тестов, и у меня проблемы с подключением его к концентратору WebDriver.
источник
Да, вы можете запускать тестовые скрипты без браузера, но вы должны запускать их в автономном режиме.
источник
возможно, вам нужно установить размер окна. как:
если тоже не работает, попробуйте увеличить размер окна.
источник
Установите и запустите контейнерный Firefox:
Подключитесь, используя
webdriver.Remote
:источник