Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I use selenium with Ruby?

I made some tests with the Firefox Selenium and then had it exported to Ruby. Although the tests all ran fine in Firefox, I am having trouble running the same suite in Ruby.

I tried to run one of the example programs they have and I also get the same connection refused error. Here is the error I got when trying to run their google_test suite.

tellingsen$ ruby google_test.rb 
Loaded suite google_test
Started
E
Finished in 0.001558 seconds.

  1) Error:
test_page_search(ExampleTest):
Errno::ECONNREFUSED: Connection refused - connect(2)
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:560:in `initialize'
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:560:in `open'
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:560:in `connect'
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/timeout.rb:62:in `timeout'
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/timeout.rb:93:in `timeout'
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:560:in `connect'
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:553:in `do_start'
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:542:in `start'
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:1035:in `request'
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:845:in `post'
    /Users/tellingsen/.gem/ruby/1.8/gems/selenium-client-1.2.18/lib/selenium/client/protocol.rb:89:in `http_post'
    /Users/tellingsen/.gem/ruby/1.8/gems/selenium-client-1.2.18/lib/selenium/client/protocol.rb:12:in `remote_control_command'
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/timeout.rb:62:in `timeout'
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/timeout.rb:93:in `timeout'
    /Users/tellingsen/.gem/ruby/1.8/gems/selenium-client-1.2.18/lib/selenium/client/protocol.rb:11:in `remote_control_command'
    /Users/tellingsen/.gem/ruby/1.8/gems/selenium-client-1.2.18/lib/selenium/client/protocol.rb:19:in `string_command'
    /Users/tellingsen/.gem/ruby/1.8/gems/selenium-client-1.2.18/lib/selenium/client/base.rb:85:in `start_new_browser_session'
    google_test.rb:21:in `setup'

1 tests, 0 assertions, 0 failures, 1 errors

Can someone help me with this?

Note:

  • Mac OS: 10.6.4
  • Macbook Pro
  • Ruby: 1.8.7
  • gem: selenium-client 1.2.18

EDIT Here is the google_test.rb that I tried

#!/usr/bin/env ruby
#
# Sample Test:Unit based test case using the selenium-client API
#
require "test/unit"
require "rubygems"
gem "selenium-client", ">=1.2.18"
require "selenium/client"

class ExampleTest < Test::Unit::TestCase
    attr_reader :browser

  def setup
    @browser = Selenium::Client::Driver.new \
        :host => "localhost", 
        :port => 4444, 
        :browser => "*firefox", 
        :url => "http://www.google.com", 
        :timeout_in_second => 60

    browser.start_new_browser_session
  end

  def teardown
    browser.close_current_browser_session
  end

  def test_page_search
        browser.open "/"
        assert_equal "Google", browser.title
        browser.type "q", "Selenium seleniumhq"
        browser.click "btnG", :wait_for => :page
        assert_equal "Selenium seleniumhq - Google Search", browser.title
        assert_equal "Selenium seleniumhq", browser.field("q")
        assert browser.text?("seleniumhq.org")
        assert browser.element?("link=Cached")
  end

end
like image 861
TrentEllingsen Avatar asked Aug 30 '10 19:08

TrentEllingsen


People also ask

Can we use Ruby with Selenium?

Selenium and Ruby can be used together, and one of the best ways to do it is through using a gem called selenium-webdriver. With this gem, you can easily automate your test cases using other Ruby-supported frameworks – which we shall introduce below.

What is needed for development and testing for Ruby project with Selenium?

In order to get started with Selenium with Ruby, you would need the following 3 main components installed in your system: Ruby. Selenium WebDriver gem. A Browser driver.

What is Ruby automation?

Ruby automation testing tool, same as Smalltalk, is an impeccable object-oriented language. Utilizing Ruby syntax is significantly much easier than utilizing Smalltalk syntax. Ruby on Rails automated testing is a greatly gainful web application system written in Ruby by David Heinemeier Hansson.


1 Answers

I figured it out after a few hours of searching on forums and through google.

What I needed to do was have the selenium server running for it to work. I was able to download it from this site http://seleniumhq.org/download/ (current: Selenium RC February 23, 2010 1.0.3).

From there I opened up a new terminal and did

cd Downloads/selenium-remote-control-1.0.3/selenium-server-1.0.3
java -jar selenium-server.jar

Then ran my ruby generated script with another terminal window

ruby google_test.rb

And it worked!

like image 161
TrentEllingsen Avatar answered Oct 24 '22 05:10

TrentEllingsen