硒+;Firefox+;HTTPS

硒+;Firefox+;HTTPS,firefox,selenium,https,Firefox,Selenium,Https,好的。我知道我问的是一个老套的问题,但我之所以发帖是因为我的问题没有得到解决,尽管我尝试了各种链接上提供的所有解决方案 我的限制-我不想使用保存的firefox配置文件来保存网站的证书 Selenium服务器版本-2.0b3 已尝试解决方案- 1) 浏览器启动器*firefox Selenium从trustAllSSLCertificates选项开始。 没有帮助。FF再次请求保存证书 2) 浏览器启动器*firefoxproxy Selenium从trustAllSSLCertificate

好的。我知道我问的是一个老套的问题,但我之所以发帖是因为我的问题没有得到解决,尽管我尝试了各种链接上提供的所有解决方案

我的限制-我不想使用保存的firefox配置文件来保存网站的证书

Selenium服务器版本-2.0b3

已尝试解决方案-
1)
浏览器启动器*firefox
Selenium从trustAllSSLCertificates选项开始。
没有帮助。FF再次请求保存证书

2)
浏览器启动器*firefoxproxy
Selenium从trustAllSSLCertificates选项开始。
没有帮助

(三)

4) 此外,我尝试创建自己的cert_override.txt并填充5个字段,如中所述,但获取第5个字段的值(即证书的序列号)和作为base64编码字符串的颁发者名称并不像中所述的那样简单

5) 使用Firefox的RememberCertificateAxception插件是另一种选择,但我还不能完全静默安装它。当我们将xpi文件放到所需的目录中时,下一次Firefox启动时,它会提示是否应该找到插件,是否应该继续安装。插件不会仅仅反映在浏览器中。如果有人至少能帮我完成这个完整的静默安装,那就太好了

我只想让它在Firefox中工作。我对IE和谷歌浏览器不感兴趣


如果您能提供答案,而不仅仅是将其视为复制品,我们将不胜感激。

我建议您选择硒的替代品

你试过了吗?它基本上是一个非常类似的应用程序,因为它允许脚本化的浏览器控制,但在很多情况下,它似乎比Selenium工作得更好

从Sahi常见问题页面:

它与硒相比如何?

Sahi对于测试人员来说更容易学习和使用。Sahi的记录器可以在所有浏览器上工作。Sahi自动等待AJAX和页面加载。它不使用XPath,而是使用更直观的API,如_in和_near。Sahi在框架、iFrame、弹出窗口、具有动态ID的站点、https站点、401身份验证站点等方面运行良好。它具有内置HTML报告,并能够并行运行多个脚本

根据我的经验,这是准确的。有一些特定类型的浏览器事件是Selenium难以处理的,Sahi可以更好地处理这些事件

我知道这并不能解决您在硒方面的问题,而且我知道如果您已经用硒编写了测试以在Sahi中重新进行测试,这将是一件痛苦的事情,因此这可能不是您正在寻找的解决方案,但是如果其他所有方法都失败了,那么这可能值得考虑


ps-您没有提到任何关于您的开发环境的内容,但是有一个基于PHP的测试工具,名为,它与Sahi和Selenium集成在一起——也就是说,您可以编写一个测试脚本,并让它在其中任何一个中工作。我不知道在其他语言中有任何类似的工具,但如果它能帮助您在这两种语言之间迁移,可能会很有趣。

因此,解决方案就是上面提到的第五点。 以下是解决问题的步骤-

1) 从下载记住证书异常xpi文件

2) 解压缩它以获得一组文件。将它们保存在临时文件夹中。(临时文件夹/提取的文件)

3) 打开install.rdf文件并复制描述节点中存在的em:id节点的内容

4) 重命名刚刚使用此复制字符串创建的临时文件夹

5) 将此文件夹置于profile_name/extensions/目录下。同时从概要文件文件夹中删除扩展名.cache/.ini/.rdf文件。这些需要删除,以防止提示用户其配置文件已更改,并且需要安装新的加载项。只有删除了这3个文件,它才是完全静默安装

这可以使用脚本实现自动化

#!/bin/bash
mkdir /tmp/addon
cp -r ~/POC/remember_certificate_exception-1.0.0-fx.xpi /tmp/addon
unzip /tmp/addon/remember_certificate_exception-1.0.0-fx.xpi -d /tmp/addon
rm /tmp/addon/remember_certificate_exception-1.0.0-fx.xpi
folder_name=$(cat /tmp/addon/install.rdf | grep -m 1 "<em:id>" | cut -f2 -d ">" | cut -f1 -d "<")
mv /tmp/addon /tmp/$folder_name
cp -r /tmp/$folder_name ~/.mozilla/firefox/*.default/extensions
rm -f ~/.mozilla/firefox/*.default/extensions.
#/bin/bash
mkdir/tmp/addon
cp-r~/POC/memory\u certificate\u exception-1.0.0-fx.xpi/tmp/addon
解压/tmp/addon/memory\u certificate\u exception-1.0.0-fx.xpi-d/tmp/addon
rm/tmp/addon/memory\u certificate\u exception-1.0.0-fx.xpi
文件夹名称=$(cat/tmp/addon/install.rdf | grep-m1“| cut-f2-d”>“| cut-f1-d”

使用此加载项。这将绕过https错误。这也是可配置的

我已经创建了一个示例,演示如何使用Selenium测试https端点--而不忽略证书验证错误。它演示了如何使用可用于验证服务器证书的受信任根CA设置Selenium客户端由正在测试的HTTPS端点呈现的ICATE。请参阅

该示例演示了Chrome和Firefox Selenium节点。Chrome在系统受信任证书存储中查找用于验证的根CA证书;Firefox在当前配置文件中查找cert8.db文件

我认为这种方法很重要,因为我认为指示您的测试工具忽略证书错误是不必要的风险;这样做可能最终会隐藏您希望在部署到生产环境之前捕获的错误


我写了一篇关于这个主题的短文,但你真的需要上面链接的回购示例。

这些页面在这个过程中非常有用-