远程WebDriver Chrome - 启动最大化

11

我希望在通过Selenium Grid运行时,Chrome可以启动并最大化。

这是我现在如何初始化它的方法:

Selenium selenium = new DefaultSelenium("localhost", 4444, "*googlechrome", "http://www.google.com");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

Chrome会启动,但没有最大化。通常我用ChromeDriver这样做:

ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");

但是我不知道如何将它传递给 RemoteWebDriver。有人可以帮忙吗?

3个回答

32
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

这就是我的做法。


上面的代码看起来不错,但是当我尝试运行时,出现了“无法解析节点上的chromeOptions能力”。我有什么遗漏吗? - DoodleKana
老实说,我不知道,抱歉。过去两年里我并没有太关注Webdriver的发展。你可以尝试在更新日志中找一下相关信息,或者发布一个新问题。 - Petr Janeček
我在这里找到了我的问题的答案:https://code.google.com/p/selenium/issues/detail?id=7043。使用新的Selenium更新选项略有不同。 - DoodleKana

3

好的,我找到了,那么让我们回答自己的问题 :)

Selenium selenium = new DefaultSelenium("localhost", 4444, "*googlechrome", "http://www.google.com");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches", Arrays.asList("--start-maximized"));
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

应该可以工作:}

2
我会接受你的答案 - 以表达对你努力的赞赏。无论如何,“在发帖之前先谷歌一下”应该成为新的“在说话之前先思考一下” - 至少在我的情况下是这样的 ;) - Pavel Janicek

1
上述解决方案对我无效,但这个有效。
ChromeOptions options = new ChromeOptions();
options.AddArguments("--start-maximized");

DesiredCapabilities capabilities = options.ToCapabilities() as DesiredCapabilities;
capabilities?.SetCapability(CapabilityType.BrowserName, "chrome");

Driver = new RemoteWebDriver(new Uri("http://localhost:4444/wd/hub"), capabilities);

希望这能对某人有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接