0

我正在使用 watir 4.0.2 和 ruby​​ 2.0.0:

确切的脚本:

require 'rubygems'
require 'watir'
@@ie = Watir::Browser.new
@@ie.goto("http://www.google.com")
@@ie.text_field(:name, 'q').when_present.set("bottlecaps")

确切的错误信息:

google_script.rb:8: undefined method 'when_present' for #<Watir::TextField:0x31eec60 located=false how=:name what="q"> <NoMethodError>

当我在脚本中执行此操作时,我会收到该错误消息,但是当我在 IRB 中执行此操作时,它的行为与我预期的一样。在这个网站上提出的相当相似的问题已经通过做一些有权限的事情得到了回答,但我不明白这在这种情况下是如何应用的。

4

1 回答 1

0

正如评论中提到的,问题在于脚本正在加载旧版本的 watir gem(v1.6.5),而 IRB 正在加载最新的 watir gem(v4.0.2)。

可以使用以下命令查看加载的 gem:

puts Gem.loaded_specs["watir"].version

解决方案是卸载所有 gem 并重新安装当前的 gem。

于 2013-07-26T22:14:32.827 回答