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

时间:2012-02-20 20:53:01

标签: 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]

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>'

我的缩写Ruby代码

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,检查状态等,我从Selenium Webdriver收到相同的错误消息。

  

browser.status - &gt; Selenium :: WebDriver :: Error :: UnknownError:'[JavaScript错误:“a为空”...

     

browser.url - &gt; Selenium :: WebDriver :: Error :: UnknownError:'[JavaScript错误:“a为空”...

     

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

我在网上搜索类似的东西,但到目前为止,我找不到一个很好的处理为什么会发生这种情况。我认为,想想,它与从login.live.com安全页面重定向到主MSDN页面有关,但这只是猜测。我可以使用带有Ruby的Webdriver,在执行任何其他任务时没有任何问题,并且今天一整天都在这样做。我唯一可以重现的是登录MSDN之后。

这台计算机刚刚更新了所有补丁和升级,所以现在有些东西不能很好地播放,但我只是不明白究竟是什么。任何建议或帮助将不胜感激,谢谢。

0 个答案:

没有答案