Поддерживает ли 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 по вашему выбору для подключения и запуска тестирования.
безголовые браузеры-плохая идея. Они достают тебя некоторые тестирование, но ничего похожего на то, что увидит реальный пользователь, и они маскируют множество проблем, которые только real браузеры столкнуться. Вам бесконечно лучше использовать" головной " браузер (т. е., что угодно, кроме HTMLUnit) в безголовой среде (например, Windows или Linux с XVFB).
Я замечаю, что вы говорите, что использование X-фреймбуфера не является истинным безголовым решением, однако для большинства я думаю, что это было бы приемлемо. В дополнение к этому, этот сервис поможет получить, что происходит для вас, если вы заинтересованы в этом в качестве решения.
да ,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()