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


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

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

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

11 64

11 ответов:

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

from selenium import webdriver
dr = webdriver.PhantomJS() 

и вуаля.

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

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

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

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

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

да ,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()

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