因此,我正在尝试使用 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)