我有一个运行watir-webdriver(使用Firefox 4.0)的脚本需要访问Firefox认为有无效证书的网页。
问题是,在我接受证书后,Firefox就会回到同一页面,好像我从未接受过它。
只有在从watir-webdriver启动Firefox时才会出现这种情况。如果我手动启动它,它将正确接受安全性异常。
答案 0 :(得分:4)
Firefox驱动程序为每个实例创建一个新的匿名配置文件,以便它在默认配置文件中工作但不能与WebDriver配合使用并不令人惊讶。
WebDriver通常非常善于处理证书问题,但有一个优势:您提供的有效证书与其提供的主机名不匹配(例如,测试环境中的生产证书)。如果是这种情况,您需要在Firefox配置文件中设置一个标志:
profile = Selenium::WebDriver::Firefox::Profile.new
profile.assume_untrusted_certificate_issuer = false
browser = Watir::Browser.new(:firefox, :profile => profile)
如果这没有帮助,您也可以将默认配置文件用作模型:
browser = Watir::Browser.new(:firefox, :profile => "default")
答案 1 :(得分:1)
您是否尝试过使用工具 - >选项 - > -Advanced->加密标签 然后单击验证按钮并取消选中使用在线证书状态协议(OCSP)...
您可以使用Selenium的Ruby绑定以编程方式禁用此选项 e.g。
require 'selenium-webdriver'
require 'watir-webdriver'
profile = Selenium::WebDriver::Firefox::Profile.new
profile["security.OCSP.enabled"] = 0
driver = Selenium::WebDriver.for :firefox, :profile => profile
browser = Watir::Browser.new(driver)