运行简单的watir脚本时出错:未初始化的常量Watir :: IE(NameError)

时间:2013-04-08 09:04:37

标签: ruby windows-7 64-bit watir watir-webdriver

我已经安装了Ruby 2,devkit&的Watir。

  • 环境:OS win7(64位)
  • 安装文件:
    • ruby​​installer-2.0.0-P0-x64.exe程序
    • 的devkit-mingw64-64-4.7.2-20130224-1432-sfx.exe
  • 宝石清单结果的一部分:
    • commmonwatir 4.0.0
    • watir 4.0.0
    • win32-process 0.6.6

当我运行一个简单的脚本时:

require 'rubygems'
require 'watir'
require 'watir-webdriver' 
ie = Watir::IE.new
ie.goto("http://www.google.com")

我收到以下错误:

uninitialized constant Watir::IE (NameError)

然后我尝试了ie = Watir::Browser.new而不是ie = Watir::IE.new 仍然有错误:

cannot load such file watir-classic (loaderror)

然后我尝试安装watir-classic,再次收到错误:

extconf.rb
libxml2 is missing

有人可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:4)

您没有安装watir-webdriver(或至少列在您的宝石列表结果中)。

gem install watir-webdriver

剧本:

require 'watir-webdriver'
ie = Watir::Browser.new :ie
ie.goto("http://www.google.com")

来源:http://watirwebdriver.com

如果您更喜欢watir-classic,可以在此处找到安装和快速入门信息:https://github.com/watir/watir-classic

答案 1 :(得分:4)

根据错误,我的猜测是watir-classic无法安装nokogiri gem。 Nokogiri目前不支持Windows上的Ruby x64 - 请参阅https://github.com/sparklemotion/nokogiri/issues/864

你可以尝试两件事:

  1. 使用32位Ruby(如Nokogiri问题中所述)

  2. 使用IE以外的浏览器。默认情况下,Browser.new将使用watir-classic启动IE。使用其他浏览器之一将使用watir-webdriver,我认为这不依赖于nokogiri。

  3. 示例:

    require 'watir'
    browser = Watir::Browser.new :chrome
    browser.goto("http://www.google.com")
    

答案 2 :(得分:0)

在你的代码中删除require'watir-webdriver'并添加require'watir-classic'。所以,您的代码应如下所示:

require 'rubygems'
require 'watir'
require 'watir-classic'
ie = Watir::IE.new
ie.goto("http://www.google.com")

警告通知:不推荐使用Watir :: IE常量,而是使用Watir :: Browser 在这种情况下,不需要'watir-classic'。以下代码应该有效:

require 'rubygems'
require 'watir'
#require 'watir-classic'
#ie = Watir::IE.new
ie = Watir::Browser.new
ie.goto("http://www.google.com")