1

因此,我正在尝试使用 Ruby 中的 Selenium WebDriver 为我们的 Web 应用程序编写一套测试,但由于 Firefox 中的 SSL 证书问题,我什至无法进入该应用程序。我们的应用程序部署在本地服务器上,并使用自签名 SSL 证书进行测试/开发。当您只是手动使用浏览器时,您可以告诉 Firefox 设置一个安全例外,并将其永久存储,这样可以正常工作。使用 Selenium 是不可能的。首先,在我能够设置永久异常之前测试失败。其次,在我设置异常的那一刻,Selenium 忘记了它并再次显示屏幕。

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

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)
4

2 回答 2

0

我想到了。诀窍是将证书下载到站点,并将其保存在某处,然后返回 Firefox 设置(加载了 Selenium 配置文件),手动上传证书,然后“编辑信任”以信任证书。

于 2012-07-05T23:54:24.290 回答
0

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

profile = Selenium::WebDriver::Firefox::Profile.new   
profile.assume_untrusted_certificate_issuer=false
browser = Selenium::WebDriver.for :firefox, :profile => profile

这一切都存在于我的env.rb档案中。

此处播放的版本:

Windows7 Pro
Ruby 1.9.3,
Selenium Webdriver Gem 2.19, and
Firefox 14.0.1

很甜吧?

于 2012-08-15T18:11:45.747 回答