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

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

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

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

Ответ 1

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

from selenium import webdriver
dr = webdriver.PhantomJS() 

и вуаля.

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

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

Ответ 7

Да. 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);

Ответ 8

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

http://phantomjs.org/

Ответ 9

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

driver = Selenium::WebDriver.for :phantomjs

Ответ 10

Вот "современный ответ" о том, как использовать 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.

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

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()

Ответ 11

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

Ответ 12

Установите версии chromeDriver и google-chrome-stable на сервере Linux, где будут запускаться тесты, и добавьте те же двоичные файлы в свой код.

фрагмент кода:

private static String driverPath = "/usr/bin/chromedriver";
static
{
    System.setProperty("webdriver.chrome.driver", driverPath);
    options = new ChromeOptions();
    options.setBinary("/usr/bin/google-chrome-stable");
    options.addArguments("headless");
    driver = new ChromeDriver(options);
}