通过驱动程序ChromeOptions和DesiredCapabilities?

Ary*_*rya 18 selenium webdriver selenium-webdriver

新的Google Chrome更新会在浏览器中显示此消息"您正在使用不受支持的命令行标记:--ignore-certificate-errors.稳定性和安全性将受到影响."

从我读到的关于selenium bug报告的内容来看,临时解决方案就是启动webdriver

options.AddArgument("test-type")
Run Code Online (Sandbox Code Playgroud)

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

DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches", Arrays.asList("--incognito"));

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

WebDriver driver = new ChromeDriver(capabilities);
Run Code Online (Sandbox Code Playgroud)

Jos*_*shM 21

我正在解决同样的问题,我终于破解了它.基本上,您可以添加ChromeOptions,DesiredCapabilities然后使用DesiredCapabilities.创建驱动程序.一旦我尝试了它,它就摆脱了横幅.无论如何,这是代码:

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);
Run Code Online (Sandbox Code Playgroud)

  • 这在WebDriver 3.6.0中已弃用. (5认同)
  • 是的。不推荐将功能传递给 ChromeDriver 构造函数。 (2认同)

Dev*_*Raj 7

添加我的答案以帮助仍在使用Selenium最新版本查找ChromeOption和功能的用户。

从v3.6.0开始不赞成将功能传递给ChromeDriver构造函数。源代码参考

ChromeDriver(Capabilities capabilities)
Deprecated. 
Use ChromeDriver(ChromeOptions) instead.
Run Code Online (Sandbox Code Playgroud)

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

ChromeOptions options = new ChromeOptions();
options.setAcceptInsecureCerts(true);
options.setUnhandledPromptBehaviour(UnexpectedAlertBehaviour.ACCEPT);
WebDriver driver = new ChromeDriver(options)
Run Code Online (Sandbox Code Playgroud)

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

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("something", true);

ChromeOptions options = new ChromeOptions();
options.addArguments("disable-infobars");
options.merge(capabilities);
Run Code Online (Sandbox Code Playgroud)

您可以查看Selenium ChromeOptions上的文章以了解有关ChromeOptions和功能的更多详细用法