首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让Ruby中的Selenium WebDriver记住Firefox中的SSL证书异常?

如何让Ruby中的Selenium WebDriver记住Firefox中的SSL证书异常?
EN

Stack Overflow用户
提问于 2012-06-29 08:59:56
回答 2查看 3.1K关注 0票数 1

因此,我正尝试用Ruby语言编写一套Selenium WebDriver来测试我们的web应用程序,但由于Firefox中的SSL证书问题,我甚至无法进入该应用程序。我们的应用程序部署在本地服务器上,并使用自签名SSL证书进行测试/开发。当你只是简单地手动使用浏览器时,你可以告诉Firefox设置一个安全异常,并将其永久存储,这很好用。使用Selenium不太可能做到这一点。首先,在我能够设置永久异常之前,测试失败。其次,当我设置异常时,Selenium会忘记它,并再次显示屏幕。

我已经尝试使用firefox -p创建一个自定义配置文件,并在该配置文件中添加异常,然后通过Selenium加载它,但Selenium似乎并不尊重该异常。我还尝试设置各种配置文件参数,使其忽略或接受证书,但Selenium似乎也忽略了这些配置文件参数。最后,我让Selenium添加了一个可以跳过无效证书屏幕的扩展,但它仍然不起作用。下面是我的代码:

代码语言:javascript
复制
require 'rubygems'
require 'selenium-webdriver'

profile = Selenium::WebDriver::Firefox::Profile.from_name "Selenium"

profile.add_extension("./skip_cert_error-0.3.2-fx.xpi")
profile["browser.xul.error_pages"] = "false"
profile["browser.ssl_override_behavior"] = "1"

driver = Selenium::WebDriver.for(:firefox, :profile => profile)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-06 07:54:24

我想通了。诀窍是将证书下载到站点,并将其保存在某个位置,然后返回到Firefox设置(加载Selenium配置文件),手动上传证书,然后单击"Edit Trust“以信任证书。

票数 0
EN

Stack Overflow用户

发布于 2012-08-16 02:11:46

还有另一种方法来剥这只猫的皮。我使用的是Cucumber\Ruby\Selenium框架,跳过错误证书的传统配置文件调整对我也不起作用。我最终做的是在Ruby代码中创建/更新FF配置文件,并为FF配置文件设置一个成员变量(assume_untrusted_certificate_issuer)。然后,我将配置文件传递给browser\driver实例。看看这个:

代码语言:javascript
复制
profile = Selenium::WebDriver::Firefox::Profile.new   
profile.assume_untrusted_certificate_issuer=false
browser = Selenium::WebDriver.for :firefox, :profile => profile

这些都保存在我的env.rb文件中。

此处显示的版本:

代码语言:javascript
复制
Windows7 Pro
Ruby 1.9.3,
Selenium Webdriver Gem 2.19, and
Firefox 14.0.1

很甜蜜,是吧?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11254866

复制
相关文章

相似问题

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