【问题标题】:Testing Watir on Firefox throws JsshSocket::JSReferenceError在 Firefox 上测试 Watir 抛出 JsshSocket::JSReferenceError
【发布时间】:2010-04-04 12:19:55
【问题描述】:

我在 Windows 上使用 Watir,当我的脚本尝试在 Firefox 上运行时,我在控制台上看到此错误:

JsshSocket::JSReferenceError:  Components is not definedReferenceError: Components is not defined
    C:/xampp/Ruby/lib/ruby/gems/1.8/gems/firewatir-1.6.5/lib/firewatir/jssh_socket.rb:12:in `js_eval'
    C:/xampp/Ruby/lib/ruby/gems/1.8/gems/firewatir-1.6.5/lib/firewatir/firefox.rb:195:in `goto'
    C:/xampp/Ruby/lib/ruby/gems/1.8/gems/firewatir-1.6.5/lib/firewatir/firefox.rb:164:in `start'
    C:/xampp/Ruby/lib/ruby/gems/1.8/gems/commonwatir-1.6.5/lib/watir/browser.rb:71:in `start'
    ./test.rb:12:in `test_prepare'

这是否发生在其他人身上?我能做些什么来解决它?

【问题讨论】:

  • 我需要更多信息。 Windows、Ruby、Firefox 的版本,链接到您使用的 jssh 插件,导致错误的代码。您也可以将问题发布到groups.google.com/group/watir-general

标签: ruby firefox integration-testing watir jssh


【解决方案1】:

我以前从未见过这样的错误。这是失败的代码。

  def js_eval(str)
    str.gsub!("\n", "")
    jssh_socket.send("#{str};\n", 0)
    value = read_socket()
    if md = /^(\w+)Error:(.*)$/.match(value)
      errclassname="JS#{md[1]}Error"
      unless JsshSocket.const_defined?(errclassname)
        JsshSocket.const_set(errclassname, Class.new(StandardError))
      end
      raise JsshSocket.const_get(errclassname), md[2]
    end
    value
  end

您的错误在于这个错误处理代码,在我看来它过于复杂。如果此错误处理代码更好,我们会更好地了解真正导致您的问题的原因。抱歉,我无法提供更好的帮助。

【讨论】:

  • jssh_socket.rb 的第 12 行(来自您的堆栈跟踪)是上面以“raise”开头的行
【解决方案2】:

“组件未定义”消息是一个 javascript 错误 — 它是从 jssh_socket.send 操作返回的。

This discussion at support.mozilla.com 将错误描述为间歇性且无害,这也是我在 Mac OS X 上使用 Watir + Firefox 时的经验(JSReferenceError 来来去去,并不会阻止我尝试执行的操作) .

所以我所做的就是捕获异常,然后忽略它:

browser = Watir::Browser.new
begin
  browser.goto 'http://www.thewebsiteiwant.com/'
rescue JsshSocket::JSReferenceError
  # do nothing
end

让我的 Watir 程序继续。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 1970-01-01
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多