Watir无法清除IE安全警告

时间:2011-10-12 00:46:07

标签: testing watir watir-webdriver

我正在使用watir-webdriver驱动IE使用其他网站的SSL证书测试网站。 (同一网站的制作版)

当我访问我的网站时,我得到一个看起来像这样的页面(因为安全证书很糟糕)  http://www.zeus.com/sites/default/files/media/warning2.png

watir文档有针对此http://wiki.openqa.org/display/WTR/Security+Alerts的解决方法     my_browser.link(:id,“overridelink”)。点击

当我尝试在ruby控制台中运行它时,我收到错误。

irb(main):050:0> b.link(:id, "overridelink").click
Selenium::WebDriver::Error::UnexpectedJavascriptError: Unable to find element with xpath == .//a[@id='overridelink']
        from C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/remote/response.rb:45:in `assert_ok'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/remote/response.rb:15:in `initialize'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/remote/http/common.rb:54:in `new'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/remote/http/common.rb:54:in `create_response'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/remote/http/default.rb:64:in `request'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/remote/http/common.rb:35:in `call'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/remote/bridge.rb:410:in `raw_execute'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/remote/bridge.rb:388:in `execute'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/remote/bridge.rb:356:in `find_element_by'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/common/search_context.rb:41:in `find_element'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.5/lib/watir-webdriver/locators/element_locator.rb:86:in `find_first_by_multiple'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.5/lib/watir-webdriver/locators/element_locator.rb:33:in `locate'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.5/lib/watir-webdriver/elements/element.rb:263:in `locate'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.5/lib/watir-webdriver/elements/element.rb:245:in `assert_exists'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.5/lib/watir-webdriver/elements/element.rb:65:in `click'
        from (irb):50
        from :0irb(main):051:0>

当您查看错误页面的html时,肯定会出现“继续”链接。

<tr>
<td >&nbsp;</td>
<td id="continueToSiteAlign" align="left" valign="middle">
    <h4 id="continueToSite">
        <img src="red_shield.png" ID="ImgOverride" border="0" alt="Not recommended icon" class="actionIcon"><A href='' ID="overridelink" NAME="overridelink" >Continue to this website (not recommended).</A>
    </h4>
    </td>
</tr>

有谁知道如何解决这个问题?

4 个答案:

答案 0 :(得分:4)

据我所知,Watir-WebDriver无法自动避免这种情况。

解决方案是确保IE不关心此错误:

  1. 工具并选择“Internet选项”
  2. 选择“高级”标签
  3. 向下滚动并取消选中“关于证书地址不匹配的警告”

答案 1 :(得分:2)

我认为这是了解watir-webdriver如何使用证书的正确页面:http://watirwebdriver.com/browser-certificates/

不幸的是,我没有看到任何关于IE浏览器的信息。

更新:Alister说:“我相信您需要手动将证书添加到受信任的根”https://twitter.com/#!/alisterscott/status/124047931945922561

答案 2 :(得分:1)

我使用的解决方案是使用autoit标签进入'继续网站',节省必须一直添加到网站

    autoit=WIN32OLE.new('AutoItX3.Control')
    i=1
    while i < 11 
        autoit.Send("{Tab}")
        i+=1
    end

    autoit.Send("{Enter}")

答案 3 :(得分:0)

此代码适用于我的IE10,它完全点击“overridelink”。

browser.goto("javascript:document.getElementById('overridelink').click()")