因此,我正尝试用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)发布于 2012-07-06 07:54:24
我想通了。诀窍是将证书下载到站点,并将其保存在某个位置,然后返回到Firefox设置(加载Selenium配置文件),手动上传证书,然后单击"Edit Trust“以信任证书。
发布于 2012-08-16 02:11:46
还有另一种方法来剥这只猫的皮。我使用的是Cucumber\Ruby\Selenium框架,跳过错误证书的传统配置文件调整对我也不起作用。我最终做的是在Ruby代码中创建/更新FF配置文件,并为FF配置文件设置一个成员变量(assume_untrusted_certificate_issuer)。然后,我将配置文件传递给browser\driver实例。看看这个:
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很甜蜜,是吧?
https://stackoverflow.com/questions/11254866
复制相似问题