Поддерживает ли Selenium тестирование безголового браузера?

Я смотрю на Selenium Server в данный момент, и я, кажется, не замечаю драйвер, который поддерживает тестирование браузера без головы.

Если я не ошибаюсь, он не поддерживает его. Если вы находитесь на X, вы можете создать виртуальный фреймбуфер, чтобы скрыть окно браузера, но это не совсем безголовый браузер.

может кто-нибудь просветить меня? Поддерживает ли Selenium тестирование безголового браузера?

11 ответов


вам не нужно использовать PhantomJS в качестве альтернативы Селену. Selenium включает класс PhantomJS webdriver, который работает на платформе GhostDriver. Просто установите двоичный файл PhantomJS на свой компьютер. в Python, вы можете использовать:

from selenium import webdriver
dr = webdriver.PhantomJS() 

и вуаля.


API WebDriver поддерживает HTMLUnit в качестве браузера для вашего тестирования. Рубиновые люди используют капибару некоторое время для их безголового тестирования селена, поэтому это определенно выполнимо.


Я знаю, это старый пост. Думал, это поможет другим, кто ищет ответ.

вы можете установить полномасштабный firefox в любом дистрибутиве linux с помощью XVFB. Это гарантирует, что ваше тестирование выполняется в реальном браузере. После того, как у вас есть безголовая установка, вы можете использовать webdriver по вашему выбору для подключения и запуска тестирования.


безголовые браузеры-плохая идея. Они вам некоторые тестирование, но ничего похожего на то, что увидит реальный пользователь, и они маскируют множество проблем, которые только реальные браузеры столкнуться. Вам бесконечно лучше использовать" возглавляемый " браузер (то есть, ничего, кроме HTMLUnit) в безголовой среде (например, Windows или Linux с XVFB).


Я заметил, что вы говорите, что использование X framebuffer не является истинным безголовым решением, однако для большинства, я думаю, что это было бы приемлемо. Кроме того,этот сервис поможет получить это для вас, если вы заинтересованы в этом в качестве решения.


да, selenium поддерживает безголовое тестирование браузера...но я обнаружил, что HTMLUnit терпит неудачу в большинстве случаев...Я искал альтернативу...PhantomJs был действительно хорош.можно, безусловно, дать ему попробовать это было очень быстро по сравнению с другими браузерами...это очень хорошо для тестирования...

http://phantomjs.org/


С ruby и macOS:brew install phantomjs затем:

driver = Selenium::WebDriver.for :phantomjs

Selenium поддерживает безголовое тестирование браузера. Настройки Селен поддерживается SeleniumHQ. Эти контейнеры docker поставляются с поддержкой xvfb с ними из коробки. Есть такие инструменты, как PhantomJS, которые вы можете подключить с селеном. Тем не менее, он официально не поддерживается самим селеном.

Как и другие описали, PhantomJS на самом деле не рекомендуется. Весь смысл Selenium заключается в автоматизации браузеров. Но зачем автоматизировать браузер никто не использует? Я никогда не понимал, как это было упущено так часто разработчиками..


да. Selenium поддерживает безголовое тестирование браузера, и это быстрее, а также удобно для большого количества тестов.

ChromeOptions cromeOptions = new ChromeOptions();

//Location of browser binary/.exe file
cromeOptions.setBinary("/usr/bin/google-chrome-stable");

cromeOptions.addArguments("--headless");
cromeOptions.addArguments("--no-sandbox");
cromeOptions.addArguments("--disable-gpu");
cromeOptions.addArguments("--window-size=1920,1080");

WebDriver webDriver = new ChromeDriver(cromeOptions);

вот "современный ответ" о том, как использовать Selenium с драйвером xvfb и Firefox в среде Ubuntu Linux под управлением Django/Python:

# install xvfb and Firefox driver
sudo su
apt-get install -y xvfb firefox
wget https://github.com/mozilla/geckodriver/releases/download/v0.19.1/geckodriver-v0.19.1-linux64.tar.gz
tar -x geckodriver -zf geckodriver-v0.19.1-linux64.tar.gz -O > 
/usr/bin/geckodriver
chmod +x /usr/bin/geckodriver

# install pip modules
pip install selenium
pip install PyVirtualDisplay

затем вы можете следовать инструкциям [Django LiveServerTestCase] [1].

чтобы использовать только что установленный драйвер, сделайте что-то вроде этого:

from pyvirtualdisplay import Display
from selenium.webdriver.firefox.webdriver import WebDriver

driver = WebDriver(executable_path='/usr/bin/geckodriver')
display = Display(visible=0, size=(800, 600)).start()

# add your testing classes here...

driver.quit()
display.stop()

да Selenium поддерживает безголовое тестирование браузера.Безголовые браузеры быстрее, чем браузеры в реальном времени.