Firefox и Watir не будут работать на Windows из-за не найденного метода singularize, что не так? - PullRequest
1 голос
/ 30 августа 2010

Я только что установил свежую копию ruby ​​1.8.7 на Windows XP SP3 32bit.Установите 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, как и ожидалось.1017 * что означает этот неопределенный метод `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>

Ответы [ 3 ]

0 голосов
/ 31 августа 2010

Просто сделайте require 'active_support' где-нибудь в своем коде. Похоже, ребята не указали active_support как зависимость. добавьте сюда разглагольствования

0 голосов
/ 31 августа 2010

работает для меня с 1.8.6 (mingw) + active_support 2.3.8 + watir (хотя я получаю сообщение «Пожалуйста, установите jssh», когда я использую его с Firefox).

Моя первая догадка, чтоу вас есть конфликт между драгоценными камнями, и rubygems «всегда выбирает первое»

Вы можете установить gem_conflict_checker gem (который включает в себя плагин rubygems для проверки того же самого).Установите его, затем установите драгоценный камень watir, и он должен сообщить вам о существующем конфликте.

В ответ на ваш первоначальный вопрос, вот единственное число: http://blog.jayfields.com/2007/11/stringsingularize.html

-r

0 голосов
/ 31 августа 2010

Статья Википедии не поддерживается командой Watir, поэтому, вероятно, она не актуальна.Пожалуйста, используйте только примеры из watir.com .

Я посмотрел статью в Википедии и нигде не смог найти require 'watir/ie', используйте просто require 'watir'.

Я установил Ruby 1.8.7-p302 из rubyinstaller.org / downloads на полностью исправленную 32-разрядную машину XP SP3 и установил Watir с gem install watir.

Я установил Firefox 3.6.8 и Плагин Windows для Firefox 3.6 из watir.com / установка .

Я выполнил кодиз 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

Действительно странно.Раньше это работало.

Если вы хотите использовать Firefox с Watir, я бы предложил watir-webdriver gem, пока это не будет исправлено.

...