首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过司机ChromeOptions和DesiredCapabilities?

通过司机ChromeOptions和DesiredCapabilities?
EN

Stack Overflow用户
提问于 2014-05-23 16:39:08
回答 5查看 87.7K关注 0票数 19

新的Google更新会在浏览器中导致以下消息:“您正在使用不受支持的命令行标志:--忽略-证书-错误。稳定性和安全性将受到损害。”

根据我在selenium bug报告中所读到的内容,临时解决方案是使用

代码语言:javascript
复制
options.AddArgument("test-type")

在创建驱动程序时,我已经传递了DesiredCapabilities。如何将ChromeOptions和DesiredCapabilities传递给驱动程序?

代码语言:javascript
复制
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches", Arrays.asList("--incognito"));

ChromeOptions options = new ChromeOptions();
options.addArguments("test-type");

WebDriver driver = new ChromeDriver(capabilities);
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-05-23 20:18:52

我也在努力解决同样的问题,我终于解决了。基本上,您可以将ChromeOptions添加到DesiredCapabilities,然后使用DesiredCapabilities创建驱动程序。我一试,它就把横幅去掉了。总之,这是代码:

代码语言:javascript
复制
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("test-type");
capabilities.setCapability("chrome.binary", "<Path to binary>");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
webDriver = new ChromeDriver(capabilities);
票数 24
EN

Stack Overflow用户

发布于 2018-01-12 06:16:25

添加了我的答案,以帮助仍在使用Selenium最新版本的ChromeOptions和功能的用户。

将功能传递给ChromeDriver构造函数的建议从v3.6.0中删除。源代码参考

代码语言:javascript
复制
ChromeDriver(Capabilities capabilities)
Deprecated. 
Use ChromeDriver(ChromeOptions) instead.

相反,您应该开始使用如下内容:

代码语言:javascript
复制
ChromeOptions options = new ChromeOptions();
options.setAcceptInsecureCerts(true);
options.setUnhandledPromptBehaviour(UnexpectedAlertBehaviour.ACCEPT);
WebDriver driver = new ChromeDriver(options)

您仍然可以定义您的功能,但请确保将这些功能与ChromeOptions合并如下:

代码语言:javascript
复制
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("something", true);

ChromeOptions options = new ChromeOptions();
options.addArguments("disable-infobars");
options.merge(capabilities);

您可以查看硒ChromeOptions上的文章,以获得关于ChromeOptions和功能的更详细的用法。

票数 9
EN

Stack Overflow用户

发布于 2015-04-01 16:48:27

FYI:这项技术似乎不适用于Chrome 41.0.2272.101m。

代码语言:javascript
复制
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddExcludedArgument("ignore-certificate-errors");
capabilities = DesiredCapabilities.Chrome();
capabilities.SetCapability(ChromeOptions.Capability, chromeOptions);

new RemoteWebDriver(hubUri, capabilities, TimeSpan.FromSeconds(180))

生成

代码语言:javascript
复制
09:39:24.110 WARN - Exception: unknown error: cannot parse capability: chromeOptions
from unknown error: unrecognized chrome option: Arguments
(Driver info: chromedriver=2.10.267521,platform=Windows NT 6.3 x86_64) 
(WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 1.52 seconds
Build info: version: '2.43.0', revision: '597b76b', time: '2014-09-09 20:52:14'
System info: host: 'T10-E8-GREGPE', ip: '10.123.160.70', os.name: 'Windows 8.1', os.arch: 'x86', os.version: '6.3', java.version: '1.8.0_40'
Driver info: org.openqa.selenium.chrome.ChromeDriver

这似乎是可行的:

代码语言:javascript
复制
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddArgument("test-type");
capabilities = (DesiredCapabilities)chromeOptions.ToCapabilities();

new RemoteWebDriver(hubUri, capabilities, TimeSpan.FromSeconds(180));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23834413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档