【问题标题】:NoMethodError - undefined method `now' for Watir::Time:ClassNoMethodError - Watir::Time:Class 的未定义方法“现在”
【发布时间】:2017-03-25 05:26:31
【问题描述】:

每当我尝试与 Watir 元素交互时都会收到以下错误。

/Library/Ruby/Gems/2.0.0/gems/watir-6.0.1/lib/watir/wait/timer.rb:40:in `current_time': undefined method `now' for Watir::Time:Class (NoMethodError)
    from /Library/Ruby/Gems/2.0.0/gems/watir-6.0.1/lib/watir/wait/timer.rb:6:in `initialize'
    from /Library/Ruby/Gems/2.0.0/gems/watir-6.0.1/lib/watir/elements/element.rb:656:in `new'
    from /Library/Ruby/Gems/2.0.0/gems/watir-6.0.1/lib/watir/elements/element.rb:656:in `element_call'
    from /Library/Ruby/Gems/2.0.0/gems/watir-6.0.1/lib/watir/elements/element.rb:114:in `click'
    from fund_cc.rb:8:in `<main>'

这是我的代码:

require 'watir'
# require 'time'

b = Watir::Browser.new(:chrome)#, :url => "http://localhost:9515")
b.goto "https://www.bankofamerica.com/"

contact_us= b.link(:text, "Contact Us")
contact_us.click

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

【问题讨论】:

    标签: ruby selenium automation watir


    【解决方案1】:

    这应该在版本 6.0.2 中得到修复。

    来自Titus Fortner on the Watir-General mailing list

    最新版本的 Watir 尝试使用单调时间 支持,看起来我们在哪里抓住了错误的时间类 不支持。

    我刚刚更新并将修复推送到 6.0.2。你应该能够 立即更新包。

    【讨论】:

      【解决方案2】:

      我能够重现这种行为。您可以通过调整 /lib/watir/wait/timer.rb 中的 current_time 方法在本地修补您的 gem:

      def current_time
        ::Time.now.to_f  # was Time.now.to_f
      end
      

      我建议在https://github.com/watir/watir/issues 上记录一个问题。

      【讨论】:

      • 谢谢!看起来它已在更新中修复,但如果我遇到类似情况,我会记住这一点。
      猜你喜欢
      • 2013-04-24
      • 2016-05-05
      • 2015-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-01
      • 2019-06-12
      • 2013-11-14
      相关资源
      最近更新 更多