Поддерживает ли 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 был действительно хорош.можно, безусловно, дать ему попробовать это было очень быстро по сравнению с другими браузерами...это очень хорошо для тестирования...
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 поддерживает безголовое тестирование браузера.Безголовые браузеры быстрее, чем браузеры в реальном времени.