Ruby_Installation_Error_Watir

kha*_*han 5 ruby installation rubygems watir gemspecs

我遇到了以下错误:

#ERROR
C:\Users\Farooq>D:

D:\>irb
irb(main):001:0> require 'rubygems'

=> false

irb(main):002:0> require 'watir'

LoadError: cannot load such file -- watir/loader
        from D:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from D:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from D:/Ruby193/lib/ruby/gems/1.9.1/gems/commonwatir-4.0.0/lib/watir.rb:1:in `<top (required)>'
        from D:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `require'
        from D:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
        from D:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
        from (irb):2
        from D:/Ruby193/bin/irb:12:in `<main>'
irb(main):003:0>
Run Code Online (Sandbox Code Playgroud)

我已经安装了gem watir,我的系统配置如下:

  • 操作系统:Windows7
  • IE:10

Jar*_*man 6

确保watirgem 安装正确。你可以这样做:

gem install watir
Run Code Online (Sandbox Code Playgroud)

忽略此处说您不应该安装的其他答案watir-安装是完全正常的,watir因为这是一个元 gem,它将加载watir-webdriver或watir-classic根据需要。

然后在你的代码中,这样做:

require "watir"

b = Watir::Browser.new :chrome # loads watir-webdriver and opens up a Chrome browser
Run Code Online (Sandbox Code Playgroud)

但是,如果您不指定浏览器,则默认将用于当前平台。

# on Windows
b = Watir::Browser.new # loads watir-classic and opens up an IE browser

# on unix
b = Watir::Browser.new # loads watir-webdriver and opens up a Firefox browser
Run Code Online (Sandbox Code Playgroud)

换句话说 - 使用watirgem 是完全正常的,即使你想watir-webdriver在它下面使用,因为你可以很容易地切换驱动程序。

您可以从watir 自述文件中阅读更多内容。


Aru*_*hit 1

好的!因此,查看输出,gem list --local我可以肯定地告诉您,您安装了watir-webdriver,而不是watirgem。

你应该把它写成require 'watir-webdriver'. 您也不需要这样做require 'rubygems',因为您在 Ruby1.9.3 中。

这是使用chrome的简单代码:

require 'watir-webdriver'
b = Watir::Browser.new :chrome
b.goto 'https://www.google.co.in/'
b.text_field(:id => 'gbqfq').set 'ruby'
Run Code Online (Sandbox Code Playgroud)