FF 51上使用Geckodriver的证书错误无效

时间:2017-02-16 21:37:57

标签: java firefox ui-automation geckodriver selenium3

我在Firefox 51.0.1上使用Selenium 3,Geckodriver发布v0.14.0。我在尝试打开URL的浏览器上收到错误,它说连接不安全(证书错误),虽然我检查了证书并且它是有效的。

错误是这样的:

Command failed: open target="" value="https://mydomain.mysite.com/default" -> Reached error page: about:certerror?e=nssBadCert&u=https%3A//mydomain.mysite.com/default&c=UTF-8&f=regular&d=mydomain.mysite.com%20uses%20an%20invalid%20security%20certificate.%0A%0AThe%20certificate%20is%20not%20trusted%20because%20the%20issuer%20certificate%20is%20unknown.%0AThe%20server%20might%20not%20be%20sending%20the%20appropriate%20intermediate%20certificates.%0AAn%20additional%20root%20certificate%20may%20need%20to%20be%20imported.%0A%0AError%20code%3A%20%3Ca%20id%3D%22errorCode%22%20title%3D%22SEC_ERROR_UNKNOWN_ISSUER%22%3ESEC_ERROR_UNKNOWN_ISSUER%3C/a%3E%0A

我使用以下代码(下面的部分代码段)来设置FF的功能,并且 acceptSslCerts 似乎设置为 true

System.setProperty("webdriver.gecko.driver", geckoDriverLocation);

DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setCapability(CapabilityType.ELEMENT_SCROLL_BEHAVIOR, 1);

FirefoxProfile profile = new FirefoxProfile();

// Set the download path in Firefox profile
profile.setPreference("browser.download.dir", "/User/me/download");
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.manager.showWhenStarting",false);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "images/jpeg, application/pdf, application/octet-stream, application/zip, application/xml");
profile.setPreference("pdfjs.disabled", true);​

profile.setAcceptUntrustedCertificates(true);
profile.setAssumeUntrustedCertificateIssuer(true);

desiredCapabilities.setCapability(FirefoxDriver.PROFILE, profile);
desiredCapabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
desiredCapabilities.setCapability("acceptInsecureCerts", true);

return new FirefoxDriver(desiredCapabilities);

如果我在上面的最后一个语句上加上断点并检查,它会将((RemoteWebDriver) webDriver).getCapabilities().getCapability("acceptSslCerts")作为 false 返回。即 acceptSslCerts 设置为 true 。详细的错误消息(此处未显示)显示了相同的事实。

这可能是错误发生的原因吗?可以采取哪些措施来确保正确设置此值( acceptSslCerts )?

请注意,使用Firefoxdriver的FF 47上的Selenium 2不会发生错误。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

根据下面发布的更新,除非使用Firefox v52,否则无法解决上述问题。

https://www.hskupin.info/2017/01/23/using-selenium-and-webdriver-to-interact-with-insecure-ssl-pages-in-firefox/

尝试使用仍处于测试阶段的FF 52。它奏效了!