Selenium firefox - WebDriverException:到达错误页面:about:certerror

Posted

技术标签:

【中文标题】Selenium firefox - WebDriverException:到达错误页面:about:certerror【英文标题】:Selenium firefox - WebDriverException: Reached error page: about:certerror 【发布时间】:2017-07-10 15:12:46 【问题描述】:

元:-

Firefox v51.0.1(32 位) Windows 10 硒 3.0.1 Geckodriver Win32 v0.13.0 Java v1.8.0_71

重现步骤:-

WebDriver driver = new FirefoxDriver();
driver.get("untrusted/self-signed URL")

堆栈跟踪:-

org.openqa.selenium.WebDriverException: 到达错误页面: about:certerror?e=nssBadCert&u=xxxxxxxx&c=UTF-8&f=regular&d=xxxxxx%20uses%20an%20invalid%20security%20certificate.%0A%0AThe%20certificate% 20is%20not%20trusted%20because%20it%20is%20self-signed.%0AThe%20certificate%20is%20not%20valid%20for%20the%20name%20xxxxxx%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 构建信息:版本:'3.0.1',修订:'1969d75',时间:'2016-10-18 09:48:19 -0700' 系统信息:主机:'Saurabh-PC',ip:'192.168.3.8',os.name:'Windows 10',os.arch:'x86',os.version:'10.0',java.version:'1.8 .0_71' 驱动信息:org.openqa.selenium.firefox.FirefoxDriver

截图:-

我也尝试过使用FirefoxProfile 作为:-

DesiredCapabilities dc = DesiredCapabilities.firefox();
dc.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);

FirefoxProfile profile = new FirefoxProfile();
profile.setAcceptUntrustedCertificates(true);

dc.setCapability(FirefoxDriver.PROFILE, profile);

WebDriver driver =  new FirefoxDriver(dc);
driver.get("untrusted/self-signed URL");

但是问题和上面一样。

已尝试的参考链接:-

How to disable Firefox's untrusted connection warning using Selenium? https://groups.google.com/forum/?fromgroups#!topic/webdriver/frWtNrEwNPk Handling UntrustedSSLcertificates using WebDriver

根据this bug,已通​​过bug 1103196 添加了对不受信任/自签名证书的支持,并且将从Firefox 52 开始提供。

但我找不到Firefox v51.0.1 (32-bit) 的任何解决方案。

有没有办法使用Firefox v51.0.1 (32-bit)解决这个问题?

【问题讨论】:

手动访问网站一次,并将证书添加到 Firefox 的例外列表中? @JimGarrison 已经完成,并且在这样做之后手动打开它但是当使用硒打开它时问题是相同的..:( 【参考方案1】:

正如this bug 中提到的,对不受信任/自签名证书的支持将从Firefox 52 开始提供,我们需要等到Firefox 52 没有发布。


解决方案:- 目前,作为替代解决方案,我们需要使用现有的 Firefox profile,其中 untrusted/self-signed URL 的证书已添加到 Firefox's exception list

如何为 selenium 创建自定义 Firefox 配置文件?

Need to follow this link to create manually custom Firefox profile 将不受信任/自签名 URL 的手动证书添加到 Firefox 的例外列表中

使用现有配置文件启动 Firefox:-

System.setProperty("webdriver.gecko.driver", "path/to/geckodriver")

ProfilesIni profile = new ProfilesIni();
FirefoxProfile myprofile = profile.getProfile("created Profile Name");

WebDriver driver = new FirefoxDriver(myprofile);
driver.get("untrusted/self-signed URL");

【讨论】:

以上是关于Selenium firefox - WebDriverException:到达错误页面:about:certerror的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Firefox 58++ 上使用 PHP Webdriver for Selenium 下载文件

selenium模块

selenium模块

selenium介绍

Selenium库

selenium webdriver窗口切换