我刚刚在Windows XP SP3 32位上安装了ruby 1.8.7的全新副本。 安装watir。
我使用维基百科示例:
require 'rubygems'
require 'watir/ie'
Watir::Browser.default = 'ie'
b = Watir::Browser.new
b.goto("http://www.google.com")
到目前为止一切顺利,按预期工作
现在
require 'rubygems'
require 'watir/ie'
Watir::Browser.default = 'firefox'
b = Watir::Browser.new
b.goto("http://www.google.com")
引发丑陋的
C:\Documents and Settings\Administrator\Desktop>ruby watir2.rb
C:/Ruby187/lib/ruby/gems/1.8/gems/commonwatir-1.6.5/lib/watir/browser.rb:89:in `
klass': undefined method `singularize' for "Buttons":String (NoMethodError)
from C:/Ruby187/lib/ruby/gems/1.8/gems/firewatir-1.6.5/lib/firewatir/ele
ment_collections.rb:185
from C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
from C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`require'
from C:/Ruby187/lib/ruby/gems/1.8/gems/firewatir-1.6.5/lib/firewatir.rb:
29
from (eval):1:in `klass'
from C:/Ruby187/lib/ruby/gems/1.8/gems/commonwatir-1.6.5/lib/watir/brows
er.rb:65:in `eval'
from C:/Ruby187/lib/ruby/gems/1.8/gems/commonwatir-1.6.5/lib/watir/brows
er.rb:89:in `klass'
from C:/Ruby187/lib/ruby/gems/1.8/gems/commonwatir-1.6.5/lib/watir/brows
er.rb:65:in `new'
from watir2.rb:7
应该提到我已经按照那里记录的程序http://watir.com/installation/#win 此外,我认为这是无关的,但我确实按预期安装了jssh firefox插件。
这个未定义的方法`singularize'代表什么?
下面是一些环境信息
C:\Documents and Settings\Administrator\Desktop>gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.7
- RUBY VERSION: 1.8.7 (2010-08-16 patchlevel 302) [i386-mingw32]
- INSTALLATION DIRECTORY: C:/Ruby187/lib/ruby/gems/1.8
- RUBY EXECUTABLE: C:/Ruby187/bin/ruby.exe
- EXECUTABLE DIRECTORY: C:/Ruby187/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-mingw32
- GEM PATHS:
- C:/Ruby187/lib/ruby/gems/1.8
- C:/Documents and Settings/Administrator/.gem/ruby/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
C:\Documents and Settings\Administrator\Desktop>gem list
*** LOCAL GEMS ***
activesupport (3.0.0)
builder (2.1.2)
commonwatir (1.6.5)
firewatir (1.6.5)
hoe (2.6.1)
json_pure (1.4.6)
nokogiri (1.4.3.1 x86-mingw32)
rake (0.8.7)
rubyforge (2.0.4)
s4t-utils (1.0.4)
user-choices (1.1.6.1)
watir (1.6.5)
win32-api (1.4.6 x86-mingw32)
win32-process (0.6.2)
windows-api (0.4.0)
windows-pr (1.0.9)
xml-simple (1.0.12)
C:\Documents and Settings\Administrator\Desktop>
答案 0 :(得分:0)
Wikipedia article,因此它可能不是最新的。请仅使用watir.com中的示例。
我查看了维基百科的文章,我在任何地方找不到require 'watir/ie'
,请只使用require 'watir'
。
我已在完全修补的XP SP3 32位计算机上安装了来自1.8.7-p302的Ruby rubyinstaller.org/downloads,并使用gem install watir
安装了Watir。
我已经从Firefox 3.6.8安装了Windows plugin for Firefox 3.6和watir.com/installation。
我已经执行了watir.com/examples
的代码require "rubygems"
require "watir"
Watir::Browser.default = "firefox"
Watir::Browser.new
但我得到了
NoMethodError: undefined method `demodulize' for "FireWatir::Pre":String
from C:/Ruby/lib/ruby/gems/1.8/gems/commonwatir-1.6.5/lib/watir/browser.rb:89:in `klass'
from C:/Ruby/lib/ruby/gems/1.8/gems/firewatir-1.6.5/lib/firewatir/elements/non_control_elements.rb:2
from C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from C:/Ruby/lib/ruby/gems/1.8/gems/firewatir-1.6.5/lib/firewatir.rb:15
from (eval):1:in `klass'
from C:/Ruby/lib/ruby/gems/1.8/gems/commonwatir-1.6.5/lib/watir/browser.rb:65:in `eval'
from C:/Ruby/lib/ruby/gems/1.8/gems/commonwatir-1.6.5/lib/watir/browser.rb:89:in `klass'
from C:/Ruby/lib/ruby/gems/1.8/gems/commonwatir-1.6.5/lib/watir/browser.rb:65:in `new'
from (irb):4
真奇怪。过去曾经工作过。
如果你想用Watir驱动Firefox,我会建议watir-webdriver gem直到修复它。
答案 1 :(得分:0)
只需在代码中的某处执行require 'active_support'
即可。看起来这些人没有将active_support指定为依赖项。 在这里添加咆哮
答案 2 :(得分:0)
适用于1.8.6(mingw)+ active_support 2.3.8 + watir(虽然我在使用firefox时收到“请安装jssh”消息)。
我的第一个预感是你在宝石之间存在一些冲突,并且rubygems“总是选择第一个”
您可以安装gem_conflict_checker gem(其中包含一个rubygems插件来测试相同的内容)。安装它然后安装watir gem它应该告诉你现有的冲突。
在回答您原来的问题时,请点击这里:http://blog.jayfields.com/2007/11/stringsingularize.html
-r