Как запустить WebDriver в безголовом режиме

Как запустить WebDriver в безголовом режиме? Это может потребоваться, если ваш инструмент CI, например Jenkins, не поддерживает пользовательский интерфейс.

Запуск автоматических тестов WebDriver в автономном режиме дает преимущества с точки зрения скорости выполнения тестов и упрощения интеграции в конвейер CI.

В этом руководстве мы будем использовать PhantomJS и ChromeDriver для запуска тестов Selenium WebDriver в автономном режиме.




PhantomJS

Чтобы запустить тесты Selenium WebDriver в автономном режиме с использованием PhantomJS, вам сначала необходимо загрузить Исполняемый файл PhantomJS и сохраните его в месте, например папка ресурсов вашего проекта.

В приведенном ниже примере я поместил исполняемый файл PhantomJS в src / test / resources / phantomjs.


Вам также понадобится зависимость от драйвера-призрака:



com.github.detro.ghostdriver phantomjsdriver 1.0.1

И ваш класс Java:

import org.openqa.selenium.phantomjs.PhantomJSDriver; import org.openqa.selenium.phantomjs.PhantomJSDriverService; import org.openqa.selenium.remote.DesiredCapabilities; public class WebDriverBase {
static protected WebDriver driver;

public static void setup() {
DesiredCapabilities caps = new DesiredCapabilities();
caps.setJavascriptEnabled(true); // not really needed: JS enabled by default
caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, 'src/test/resources/phantomjs');

driver = new PhantomJSDriver(caps);
}

public static void main(String[] args) {
WebDriverBase.setup();
driver.get('https://devqa.io');
} }


ChromeDriver

Чтобы запустить тесты WebDriver в автономном режиме с помощью ChromeDriver, вам необходимо добавить соответствующие зависимости в файл pom.xml:


org.seleniumhq.selenium
selenium-chrome-driver
${selenium.version}
org.seleniumhq.selenium
selenium-server
${selenium.version}
org.seleniumhq.selenium
selenium-java
${selenium.version}
io.github.bonigarcia
webdrivermanager
${webdrivermanager.version}

Далее мы инструктируем диспетчер WebDriver запустить драйвер Chrome в безголовом режиме.


import io.github.bonigarcia.wdm.ChromeDriverManager; import org.openqa.selenium.chrome.ChromeDriver; public class WebDriverBase {
static protected WebDriver driver;
public static void setup() {
ChromeDriverManager.getInstance().setup();
ChromeOptions chromeOptions = new ChromeOptions();

chromeOptions.addArguments('--headless');
driver = new ChromeDriver(chromeOptions);
}
public static void main(String[] args) {
WebDriverBase.setup();
driver.get('https://devqa.io');
} }