NoMethodError - Watir :: Time:Class的未定义方法`now'

时间:2016-11-11 02:28:29

标签: ruby selenium automation watir

每当我尝试与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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

这应该在版本6.0.2中修复。

来自Titus Fortner on the Watir-General mailing list

  

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

     

我刚刚更新并将修复程序推送到6.0.2。你应该能够做到   现在捆绑更新。