Selenium 为什么在使用Watir Webdriver登录网站后会出现JavaScript错误?

Selenium 为什么在使用Watir Webdriver登录网站后会出现JavaScript错误?,selenium,watir,watir-webdriver,Selenium,Watir,Watir Webdriver,我有一个可爱的错误来自Selenium Webdirver,我似乎无法通过,希望这里的人能给我一些建议 概述 我使用Ruby和Watir Webdriver驱动Firefox浏览器系统地检查MSDN上的更新,然后在需要时执行一些自动化任务。在我登录网站后,我从webdriver收到一个JS错误,我的浏览器实例变得不可用。总是发生在同一地点,在过去的几天里我一直在尝试 信息 Windows XP Pro SP3 ruby 1.9.3p0(2011-10-30)[i386-mingw32] sele

我有一个可爱的错误来自Selenium Webdirver,我似乎无法通过,希望这里的人能给我一些建议

概述

我使用Ruby和Watir Webdriver驱动Firefox浏览器系统地检查MSDN上的更新,然后在需要时执行一些自动化任务。在我登录网站后,我从webdriver收到一个JS错误,我的浏览器实例变得不可用。总是发生在同一地点,在过去的几天里我一直在尝试

信息

Windows XP Pro SP3

ruby 1.9.3p0(2011-10-30)[i386-mingw32]

selenium webdriver(2.19.0)

watir webdriver(0.5.3)

错误消息

irb(main):020:0> browser.goto "http://www.google.com"
Selenium::WebDriver::Error::UnknownError: '[JavaScript Error: "a is null" {file:"file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/webdriver-rb-profilecopy20120220-520-1q19c5x/extensions/fxdriver@googlecode.com/components/command_processor.js" line: 10092}]' when calling method: [nsICommandProcessor::execute]
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/response.rb:15:in `initialize'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/http/common.rb:59:in `new'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/http/common.rb:59:in `create_response'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/http/default.rb:64:in `request'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/http/common.rb:40:in `call'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/bridge.rb:590:in `raw_execute'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/bridge.rb:568:in `execute'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/bridge.rb:99:in `get'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/common/navigation.rb:14:in `to'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.5.3/lib/watir-webdriver/browser.rb:61:in `goto'
    from (irb):20
    from C:/Ruby193/bin/irb:12:in `<main>'
require 'watir-webdriver'
require 'win32ole'

browser = Watir::Browser.new :firefox, :profile => "default"
browser.goto "http://msdn.microsoft.com/en-us/"

ai = WIN32OLE.new("AutoItX3.Control")
browser.goto browser.link(:text => "Sign in").attribute_value('href')

browser.text_field(:name, "login").clear
browser.text_field(:name, "login").set "USERNAME"
browser.text_field(:name, "passwd").clear
browser.text_field(:name, "passwd").set "PASSWORD"

browser.button(:name, "LOGIN_BUTTON").click

# Secure to Non Secure page brings up a dialog, just send enter to dismiss
ai.winWaitActive("Security Warning", "", 15)
ai.Send("{ENTER}")
在此之后,如果我尝试对浏览器实例执行任何操作,转到一个新的URL,检查状态等,我会从SeleniumWebDriver收到相同的错误消息

browser.status->Selenium::WebDriver::Error::UnknownError:“[JavaScript错误:“a为空”

browser.url->Selenium::WebDriver::Error::UnknownError:“[JavaScript错误:“a为空”

browser.goto“http://www.google.com“->Selenium::WebDriver::Error::UnknownError:”[JavaScript错误:“a为空”

我在网上搜索了一些类似的东西,但到目前为止,我找不到一个很好的方法来解释为什么会发生这种情况。我认为,这与被从login.live.com安全页面重定向到主MSDN页面有关,但这只是一个猜测。我可以将Webdriver与Ruby结合使用,而不存在任何其他任务集的问题,并且已经完成了我今天一整天都在这么做。我唯一能复制的时间是在登录MSDN之后


这台计算机刚刚更新了所有的补丁和升级,所以现在有些东西不太好用,但我不知道它到底是什么。任何建议或帮助都将不胜感激,谢谢。

几天前,在我取消了“您确定要离开此页面”之后,我多次收到相同的错误消息如果你使用不同的浏览器,或者使用watir来驱动IE,你会有同样的问题吗?我想知道在那个页面上是否有某种反脚本代码(你可能理解为什么微软会认为这是一件好事,因为他们可能不希望有人包装他们的页面,假装有人认为他们在安装更新,而实际上这是另外一件事……我想知道firefox是否也在暗中做了一些类似于IE的事情,在安全环境变得swi的时候有很多问题。可能你想尝试使用窗口切换代码,看看是否可以重新连接到浏览器窗口?我用IE尝试过,它确实正常工作。不幸的是,因为我使用Firefox,喜欢在Windows和OS X之间切换。另外,从我在线阅读的内容来看,Watir Webdriver不支持attach,但它不支持attach这听起来是个不错的尝试。我会继续尝试,看看是否能找到类似的方法,谢谢。几天前,在我取消“您确定要离开此页面”后,我多次收到相同的错误消息如果你使用不同的浏览器,或者使用watir来驱动IE,你会有同样的问题吗?我想知道在那个页面上是否有某种反脚本代码(你可能理解为什么微软会认为这是一件好事,因为他们可能不希望有人包装他们的页面,假装有人认为他们在安装更新,而实际上这是另外一件事……我想知道firefox是否也在暗中做了一些类似于IE的事情,在安全环境变得swi的时候有很多问题。可能你想尝试使用窗口切换代码,看看是否可以重新连接到浏览器窗口?我用IE尝试过,它确实正常工作。不幸的是,因为我使用Firefox,喜欢在Windows和OS X之间切换。另外,从我在线阅读的内容来看,Watir Webdriver不支持attach,但它不支持attach这听起来是个不错的尝试。我会继续尝试,看看能不能找到类似的方法,谢谢。