redstapler
redstapler

Reputation: 131

HTTP Path Empty Error when using JRuby Watir

I have installed JRuby 1.6.7.2 (64bit), and the JDK 1.7.x (64-bit) on my Windows 7 machine. Right now I'm just trying to launch a browser (Firefox 13.0) using Watir but I keep getting an HTTP error that seems to be coming internally from JRuby + gems. I have installed the gems using the following commands:

jgem install watir-webdriver
jgem install rspec
jgem install capybara
jgem install page-object
jgem install bundler
jgem install jruby-jars

Here is the stacktrace error I get when I try to open a browser using Watir:

C:\Windows\System32>jirb
irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'watir-webdriver'
=> true
irb(main):003:0> b = Watir::Browser.start("http://www.google.com", :firefox)
[WARNING] MultiJson is using the default adapter (ok_json). We recommend loading
a different JSON library to improve performance.
ArgumentError: HTTP request path is empty
    from C:/Ruby/jruby-1.6.7.2/lib/ruby/1.8/net/http.rb:1476:in `initialize'

    from C:/Ruby/jruby-1.6.7.2/lib/ruby/1.8/net/http.rb:1594:in `initialize'

    from C:/Ruby/jruby-1.6.7.2/lib/ruby/gems/1.8/gems/selenium-webdriver-2.2
    2.2/lib/selenium/webdriver/remote/http/default.rb:64:in `new_request_for'

    from C:/Ruby/jruby-1.6.7.2/lib/ruby/gems/1.8/gems/selenium-webdriver-2.2 
    2.2/lib/selenium/webdriver/remote/http/default.rb:34:in `request'

    from C:/Ruby/jruby-1.6.7.2/lib/ruby/gems/1.8/gems/selenium-webdriver-2.2
    2.2/lib/selenium/webdriver/remote/http/default.rb:57:in `request'

    from C:/Ruby/jruby-1.6.7.2/lib/ruby/gems/1.8/gems/selenium-webdriver-2.2
    2.2/lib/selenium/webdriver/remote/http/common.rb:40:in `call'

    from C:/Ruby/jruby-1.6.7.2/lib/ruby/gems/1.8/gems/selenium-webdriver-2.2
    2.2/lib/selenium/webdriver/remote/bridge.rb:598:in `raw_execute'

    from C:/Ruby/jruby-1.6.7.2/lib/ruby/gems/1.8/gems/selenium-webdriver-2.2
    2.2/lib/selenium/webdriver/remote/bridge.rb:92:in `create_session'

    from C:/Ruby/jruby-1.6.7.2/lib/ruby/gems/1.8/gems/selenium-webdriver-2.2
    2.2/lib/selenium/webdriver/remote/bridge.rb:68:in `initialize'

    from C:/Ruby/jruby-1.6.7.2/lib/ruby/gems/1.8/gems/selenium-webdriver-2.2
    2.2/lib/selenium/webdriver/firefox/bridge.rb:28:in `initialize'

    from C:/Ruby/jruby-1.6.7.2/lib/ruby/gems/1.8/gems/selenium-webdriver-2.2
    2.2/lib/selenium/webdriver/common/driver.rb:31:in `for'

    from C:/Ruby/jruby-1.6.7.2/lib/ruby/gems/1.8/gems/selenium-webdriver-2.2
    2.2/lib/selenium/webdriver.rb:65:in `for'

    from C:/Ruby/jruby-1.6.7.2/lib/ruby/gems/1.8/gems/watir-webdriver-0.6.1/
    lib/watir-webdriver/browser.rb:35:in `initialize'

    from C:/Ruby/jruby-1.6.7.2/lib/ruby/gems/1.8/gems/watir-webdriver-0.6.1/
    lib/watir-webdriver/browser.rb:18:in `start'

    from (irb):3:in `evaluate'
    from org/jruby/RubyKernel.java:1083:in `eval'
    from C:/Ruby/jruby-1.6.7.2/lib/ruby/1.8/irb.rb:158:in `eval_input'
    from C:/Ruby/jruby-1.6.7.2/lib/ruby/1.8/irb.rb:271:in `signal_status'
    from C:/Ruby/jruby-1.6.7.2/lib/ruby/1.8/irb.rb:155:in `eval_input'
    from org/jruby/RubyKernel.java:1410:in `loop'
    from org/jruby/RubyKernel.java:1183:in `catch'
    from C:/Ruby/jruby-1.6.7.2/lib/ruby/1.8/irb.rb:154:in `eval_input'
    from C:/Ruby/jruby-1.6.7.2/lib/ruby/1.8/irb.rb:71:in `start'
    from org/jruby/RubyKernel.java:1183:in `catch'
    from C:/Ruby/jruby-1.6.7.2/lib/ruby/1.8/irb.rb:70:in `start'
    from C:\Ruby\jruby-1.6.7.2\bin\jirb:13:in `(root)'irb(main):004:0>

I have the selenium webdrivers ie & chrome added to my classpath. When I execute this command with ie or chrome I get a similar HTTP error. Is this a fix I have to do manually to the gem files?

Upvotes: 2

Views: 1707

Answers (1)

raskhadafi
raskhadafi

Reputation: 1352

I had the same error with the watir-webdriver gem. The problem were the http proxy settings and the solution was to add the no_proxy env before the code.

ENV['no_proxy'] = "127.0.0.1"

I hope that can help you!

Upvotes: 3

Related Questions