2010-10-14 25 views
2

我使用的是Windows XP,我需要使用watir与红宝石,安装非常好,我最后一次尝试按照这里的说明Failed WATIR installation Server 2003,一切都很好,除了这个“错误:在为builder-2.1.2生成文档时“,安装完成时没有更多问题。红宝石 - watir:无法获得IEnum接口

问题是当我尝试运行示例脚本来执行谷歌搜索我调用set函数时出现错误,到目前为止我还没有找到任何关于它的有用信息,如果有人可以给我一个一方面这将是巨大的:)

顺便说一句,这里http://www.mail-archive.com/[email protected]/msg07722.html他们说,这是关系到WIN32OLE但他们没有解释如何解决它(或至少我没有得到它:S)

我安装的版本是

 

    ruby -v 
    ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32] 

    gem env 
    RubyGems Environment: 
     - RUBYGEMS VERSION: 1.3.7 
     - RUBY VERSION: 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32] 
     - INSTALLATION DIRECTORY: c:/ruby/lib/ruby/gems/1.8 
     - RUBY EXECUTABLE: c:/ruby/bin/ruby.exe 
     - EXECUTABLE DIRECTORY: c:/ruby/bin 
     - RUBYGEMS PLATFORMS: 
     - ruby 
     - x86-mswin32-60 
     - GEM PATHS: 
     - c:/ruby/lib/ruby/gems/1.8 
     - C:/Documents and Settings/jamontoya/.gem/ruby/1.8 
     - GEM CONFIGURATION: 
     - :update_sources => true 
     - :verbose => true 
     - :benchmark => false 
     - :backtrace => false 
     - :bulk_threshold => 1000 
     - REMOTE SOURCES: 
     - http://rubygems.org/ 

错误

 
c:/ruby/lib/ruby/gems/1.8/gems/watir-1.6.6/lib/watir/locator.rb:119:in `each': failed to get IEnum Interface (RuntimeError) 
    HRESULT error code:0x80004002 
     No such interface supported  from c:/ruby/lib/ruby/gems/1.8/gems/watir-1.6.6/lib/watir/locator.rb:119:in `locate' 
     from c:/ruby/lib/ruby/gems/1.8/gems/watir-1.6.6/lib/watir/container.rb:838:in `locate_input_element' 
     from c:/ruby/lib/ruby/gems/1.8/gems/watir-1.6.6/lib/watir/input_elements.rb:5:in `locate' 
     from c:/ruby/lib/ruby/gems/1.8/gems/watir-1.6.6/lib/watir/element.rb:54:in `assert_exists' 
     from c:/ruby/lib/ruby/gems/1.8/gems/watir-1.6.6/lib/watir/element.rb:315:in `enabled?' 
     from c:/ruby/lib/ruby/gems/1.8/gems/watir-1.6.6/lib/watir/element.rb:62:in `assert_enabled' 
     from c:/ruby/lib/ruby/gems/1.8/gems/watir-1.6.6/lib/watir/input_elements.rb:364:in `set' 
     from Search.rb:29 

的示例代码(Search.rb) 我删除注释和其他不必要的行

 

    require "watir" 

    test_site = "http://www.google.com" 

    browser = Watir::Browser.new 
    browser.goto test_site 
    browser.text_field(:name, "q").set("pickaxe") # here is the error when set is called 
    browser.button(:name, "btnG").click 
    browser.close 

宝石列表 万一你需要知道

 
*** LOCAL GEMS *** 

activesupport (2.3.9) 
builder (2.1.2) 
commonwatir (1.6.6) 
firewatir (1.6.6) 
fxri (0.3.6) 
fxruby (1.6.12 mswin32) 
hoe (2.6.2) 
hpricot (0.6 mswin32) 
json_pure (1.4.6) 
log4r (1.0.5) 
nokogiri (1.4.3.1 x86-mswin32) 
rake (0.8.7, 0.7.3) 
rubyforge (2.0.4) 
rubygems-update (1.3.7) 
s4t-utils (1.0.4) 
sources (0.0.1) 
user-choices (1.1.6.1) 
watir (1.6.6) 
win32-api (1.4.6 x86-mswin32-60, 1.0.4 mswin32) 
win32-clipboard (0.4.3) 
win32-dir (0.3.2) 
win32-eventlog (0.4.6) 
win32-file (0.5.4) 
win32-file-stat (1.2.7) 
win32-process (0.6.2, 0.5.3) 
win32-sapi (0.1.4) 
win32-sound (0.4.1) 
windows-api (0.4.0, 0.2.0) 
windows-pr (1.0.9, 0.7.2) 
xml-simple (1.0.12) 

回答

0

Watir can't find IEnum interface线程您链接到说:

my best suggestion is to uninstall and reinstall Ruby, then re-install Watir on top of the new Ruby

,这将是我的建议了。

+0

感谢您的建议,但我已经做到了,也没有工作,事实上,我安装了不同的ruby版本,结果相同,我甚至试图同时安装2个不同的ruby版本(1.8.6和1.8.7),并没有工作:( – Jorge 2010-10-20 15:34:27

+0

尝试在另一台机器上,也许这件事打破了。 – 2010-10-21 09:12:26