2009-09-04 6 views
12

J'utilise Cucumber et Webrat depuis un moment. J'ai maintenant besoin de commencer à écrire un comportement impliquant des interactions AJAX, donc je pensais utiliser l'adaptateur Selenium pour Webrat. Quelqu'un peut-il indiquer un guide étape par étape facile et à jour pour l'installation et la configuration du sélénium + webrat + concombre? J'aimerais pouvoir mixer un scénario javascript avec des scénarios non-javascript.Guide du concombre + Webrat + sélénium

Répondre

8

J'utilise Selenium avec rspec sur mon projet et génère du code à partir d'un formateur personnalisé pour Selenium IDE.

Il ya beaucoup de sélénium pour les rails mais je réussis en utilisant Selenium-RC http://seleniumhq.org/download/, alors téléchargez sur votre PC.

Voici mes étapes:

  1. Décompressez et exécutez> java -jar sélénium server.jar
  2. Ouvert sélénium-client-ruby, lisez la doc, suivre, vous obtiendrez le succès!
  3. gem install rspec version rspec rails 1.2.6 (pas, vous devez commenter la version limite du code source de sélénium-client)
  4. joyau
  5. installer le sélénium-client
  6. Ouvrez Sélénium-IDE (Firefox bien sûr), Open options -> options -> Formats
  7. Cliquez sur Ajouter et collez ce code dans http://www.techdarkside.com/rspec_export.txt

Vous venez de spec exporter vers votre dossier de spécifications pour moi, j'utiliser les spécifications/caractéristiques/xxxx_spec.rb voir le code ci-dessous.

approche très similaire peut trouver à here

Pour Webrat + concombre, le dernier Rspec book donnera tout ce que vous avez besoin. (Ils n'ont pas le sélénium + finition chapitre concombre encore)

exemple

require 'rubygems' 
gem "rspec", "=1.2.6" 
gem "selenium-client", ">=1.2.15" 
require "selenium/client" 
require "selenium/rspec/spec_helper" 

describe "Google Search" do 
    attr_reader :selenium_driver 
    alias :page :selenium_driver 

    before(:all) do 
     @selenium_driver = Selenium::Client::Driver.new \ 
      :host => "localhost", 
      :port => 4444, 
      :browser => "*firefox", 
      :url => "http://www.google.com", 
      :timeout_in_second => 60 
    end 

    before(:each) do 
    selenium_driver.start_new_browser_session 
    end 

    # The system capture need to happen BEFORE closing the Selenium session 
    append_after(:each) do 
    @selenium_driver.close_current_browser_session 
    end 

    it "can find Selenium" do 
    page.open "/" 
    page.title.should eql("Google") 
    page.type "q", "Selenium seleniumhq" 
    page.click "btnG", :wait_for => :page 
    page.value("q").should eql("Selenium seleniumhq") 
    page.text?("seleniumhq.org").should be_true 
    page.title.should eql("Selenium seleniumhq - Google Search") 
    page.text?("seleniumhq.org").should be_true 
      page.element?("link=Cached").should be_true 
    end 

end