代码之家  ›  专栏  ›  技术社区  ›  user2256777

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

  •  4
  • user2256777  · 技术社区  · 11 年前

    我已经安装了Ruby 2,devkit和amp;瓦蒂尔。

    • 环境:操作系统win7(64位
    • 安装文件:
      • rubyinstaller-2.0.0-p0-x64.exe
      • DevKit-ming64-64-4.7.2-2013-0224-1432-sfx.exe
    • 部分创业板上市结果:
      • 通信4.0.0
      • 水4.0.0
      • win32进程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 回复  |  直到 10 年前
        1
  •  4
  •   Justin Ko    11 年前

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

    你可以尝试两件事:

    1. 使用32位Ruby(如Nokogiri问题中所建议的)

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

    例子:

    require 'watir'
    browser = Watir::Browser.new :chrome
    browser.goto("http://www.google.com")
    
        2
  •  4
  •   adam reed    11 年前

    您没有安装watir网络驱动程序(或者至少在您的gem列表结果中列出)。

    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

        3
  •  0
  •   Ripon Al Wasim rapgru    10 年前

    在您的代码中,删除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")