Slik kjører du WebDriver i hodeløs modus

Hvordan kjøre WebDriver i hodeløs modus? Dette kan være nødvendig hvis CI-verktøyet ditt, for eksempel, Jenkins ikke støtter brukergrensesnitt.

Å kjøre automatiserte tester i WebDriver i hodeløs modus gir fordeler når det gjelder gjennomføring av tester og enklere integrering i CI-rørledningen.

I denne opplæringen vil vi bruke PhantomJS og ChromeDriver til å kjøre Selenium WebDriver-tester i hodeløs modus.




PhantomJS

For å kjøre Selenium WebDriver-tester i hodeløs modus ved bruk av PhantomJS, må du først laste ned PhantomJS kjørbar fil og lagre den på et sted, f.eks. prosjektets ressursmappe.

I eksemplet nedenfor har jeg satt PhantomJS-kjørbarheten i src / test / resources / phantomjs


Du trenger også spøkelsesdriveravhengighet:

com.github.detro.ghostdriver phantomjsdriver 1.0.1

Og Java-klassen din:

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

For å kjøre WebDriver-tester i hodeløs modus ved hjelp av ChromeDriver, må du legge til de relevante avhengighetene i pom.xml-filen:


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}

Deretter instruerer vi WebDriver-manager om å starte kromdriver i hodeløs modus


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');
} }