2014-09-26 17 views
2

我已经用4个Windows(IE8,IE9,IE10,IE11)虚拟机和带有Chrome和Firefox的Ubuntu 12.04 VM设置了网格环境。在Selenium Grid环境中用Watir-WebDriver旁路证书错误

硒网格和节点是版本2.41.0 作为红宝石,我使用RVM,以及使用红宝石2.1.2p95(2014年5月8日修订45877)[x86_64的Linux的]

我驾驶来自CentOs VM的测试。现在,当我尝试运行IE8测试时,我看到远程Windows机器启动IE8,但首先在浏览器中收到消息:

“这是WebDriver服务器的初始起始页。

和后来我得到另一个页面与证书警告。

证书错误:导航已阻止 错误: 本网站提供的安全证书不是由受信任的证书颁发机构颁发。 安全证书问题可能显示试图欺骗您或截获您发送到

我试图做的注册表破解使得在IE8等于所有4个安全级别服务器的任何数据,通过 HKEY_CURRENT_USER \ SOFTWARE \微软\ Windows \ CurrentVersion \ Internet Settings \ Zones HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ Zones

并均衡所有区域中0x2500位置的值。

但似乎没有工作。 这里任何想法工作的解决方案是为红宝石/的Watir-webdriver的

这是基础类

#!/usr/bin/env ruby -W0 
require "rubygems" 
require "test/unit" 
require 'rspec' 
require 'watir-webdriver' 
require 'headless' 
require 'mysql2' 
require_relative 'lib/basic_ops' 
require_relative 'data/data' 
require_relative 'main_class' 

include GC 
caps = Selenium::WebDriver::Remote::Capabilities.ie 
caps.version = "8" 
caps[:name] = "IE 8 on win7 , port 5560" 

    BROWSER = Watir::Browser.new(
    :remote, 
    :url => "http://selenium-hub-vm:4444/wd/hub", 
    :desired_capabilities => caps) 

URL = "https://target-vm/" 
BROWSER.window.resize_to(950, 750) 
BROWSER.window.move_to(0, 0) 

main_class 

所以main_class.rb是所有浏览器相互作用。

回答

0

我所做的是添加了证书,未删除证书错误,所以我用:

@browser.link(:id, "overridelink").click 

@browser.goto("https://<URL>/") 
1

您可以使用JavaScript来获得通过安全证书问题。我从来没有用Ruby编码过,所以语法可能有点偏离。

Python代码:

driver.get("javascript:document.getElementById('overridelink').click()") 

红宝石尝试:

driver.execute_script("document.getElementById('overridelink').click()") 
driver.get "javascript:document.getElementById('overridelink').click()" 
driver.get("javascript:document.getElementById('overridelink').click()"); 

您可能希望这在如果声明过,以检查你所需要的条件。

i.e. if "Certificate Error" in driver.find_element_by_xpath("//title").text 

如果我的建议无效,以下类似的解决方案thread

希望这对您有帮助或接近您的需求。