Как да стартирам WebDriver в режим без глава? Това може да е необходимо, ако вашият инструмент за CI, например, Jenkins не поддържа потребителски интерфейс.
Изпълнението на автоматизирани тестове на WebDriver в режим без глава осигурява предимства по отношение на скоростта на изпълнение на тестовете и по-лесното интегриране в CI тръбопровода.
В този урок ще използваме PhantomJS и ChromeDriver, за да стартираме тестове на Selenium WebDriver в режим без глава.
За да стартирате тестове на 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');
} }
За да стартирате тестове на 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 да стартира хром драйвер в режим без глава
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');
} }