目标:在命令行中传递options.addArguments("--headless");
。
想法:mvn clean test --Chrome.options.AddArguments("--headless)
?
getDriver方法:
try {
java.util.Properties p = new Properties();
FileInputStream fi = new FileInputStream(System.getProperty("user.dir")
+ "/src/main/resources/config.properties");
p.load(fi);
String browserName = p.getProperty("default.browser");
switch (browserName) {
case "chrome" :
setChromeDriverPath();
ChromeOptions options = new ChromeOptions();
options.addArguments("test-type");
options.addArguments("--start-maximized");
options.addArguments("--no-sandbox");
options.addArguments("--disable-dev-shm-usage");
//options.addArguments("--kiosk");
//options.addArguments("--headless");
driver = new ChromeDriver(options);
break;
case "firefox" :
System.out.println("BROWSER DRIVER - FIREFOX - NOT IMPLEMENTED YET");
break;
case "safari" :
System.out.println("BROWSER DRIVER - SAFARI - NOT IMPLEMENTED YET");
break;
}
} catch (Exception e) {
System.out.println("Unable to load browser : getDriver returns : " + e.getMessage());
}
return driver;
}
为了做到这一点,您必须通过系统使用属性函数的概念。通常,您需要创建一些变量,如浏览器、版本、是否无头等,并将它们作为代码示例中的属性可读。每次执行mvn命令时,都会在命令后面包含您想要的选项,例如写入-Dbrowser="Chrome"
。之后,您的代码将需要相应地处理值"Chrome"。有关更多详细信息,请查看此处的链接。
这是一个非常好的分析。它会解决你的问题。