【发布时间】:2018-05-20 04:36:56
【问题描述】:
我想将ChromeDriverService 与chromeOptions 或DesiredCapabilities 合并以在xvfb 中运行浏览器。
下面是代码ChromeDriverService 的一部分,我之前没有使用硒网格。
String NodeChromeIncognito = "http://localhost:5558/wd/hub"
ChromeDriverService chromeDriverService = new ChromeDriverService.Builder()
.usingDriverExecutable(new File("driver_linux/chromedriver"))
.usingAnyFreePort()
.withEnvironment(ImmutableMap.of("DISPLAY", ":1")).build();
chromeDriverService.start();
// commented because using RemoteWebDriver
// driver = new ChromeDriver(chromeDriverService);
以下是 RemoteWebDriver 的部分代码,我将与ChromeDriverService 合并。
DesiredCapabilities cap = null;
String NodeChromeIncognito = "http://localhost:5558/wd/hub";
String NodeChrome = "http://localhost:5557/wd/hub";
String NodeFirefox = "http://localhost:5556/wd/hub";
if (browserName.equals("chrome")) {
cap = DesiredCapabilities.chrome();
cap.setBrowserName("chrome");
driver = new RemoteWebDriver(new URL(NodeChrome), cap);
} else if (browserName.equals("firefox")) {
System.setProperty("webdriver.gecko.driver", "driver_linux/geckodriver");
cap = DesiredCapabilities.firefox();
cap.setCapability("marionette", true);
driver = new RemoteWebDriver(new URL(NodeFirefox), cap);
}else if (browserName.equals("chromeIncognito")) {
ChromeOptions option = new ChromeOptions();
option.addArguments("--incognito");
cap = DesiredCapabilities.chrome();
cap.setCapability(ChromeOptions.CAPABILITY, option);
cap.setPlatform(Platform.WIN10);
cap.setBrowserName("chrome incognito");
driver = new RemoteWebDriver(new URL(NodeChromeIncognito), cap);
}
我知道我可以将addArguments("--headless") 用于chrome,但它不适用于我的webApp。我还使用了DesiredCapabilities.merge 和错误。
如何将代码/配置 ChromeDriverService 与 ChromeOptions 或 DesiredCapabilites 合并?
【问题讨论】:
-
Hey@Mysound Magic 欢迎来到堆栈溢出,请记住问题发布的格式应正确且易于理解。
标签: java selenium-webdriver selenium-grid mutablecapabilities