2009-09-04 9 views
12

Utilizzo da un po 'di tempo Cucumber e Webrat. Ora devo iniziare a scrivere un comportamento che coinvolga le interazioni AJAX, quindi stavo pensando di utilizzare l'adattatore Selenium per Webrat. Qualcuno può indicare una guida passo-passo facile e aggiornata per l'installazione e la configurazione di selenio + webrat + cetriolo? Mi piacerebbe essere in grado di mischiare lo scenario di javascript con scenari non javascript.Cetriolo + Webrat + guida selenio

risposta

8

Uso Selenium con rspec sul mio progetto e genera codice da un formattatore personalizzato per IDE Selenium.

C'è molto selenio per binari ma ho successo utilizzando Selenium-RC http://seleniumhq.org/download/, quindi scaricalo sul tuo pc.

Qui sono i miei passi:

  1. decomprimere ed eseguire> java -jar selenio server.jar
  2. aperto selenio-client-rubino, leggere il documento, lo seguono si otterrà il successo!
  3. gem install RSpec, RSpec-rails versione 1.2.6 (non, è necessario commentare la versione limitare del codice sorgente di selenio-client)
  4. gem install selenio-client
  5. aperto Selenio-IDE (Firefox, ovviamente), aprire le Opzioni -> Opzioni -> Formati
  6. fare clic su Aggiungi e incolla questo codice nel http://www.techdarkside.com/rspec_export.txt

Ora, è solo l'esportazione specifiche per la cartella specifica per me, io uso spec/caratteristiche/xxxx_spec.rb vedi il codice qui sotto.

approccio molto simile può trovare in here

Per Webrat + cetriolo, l'ultima Rspec book vi darà tutto il necessario. (Non hanno selenio + cetriolo finitura capitolo ancora)

esempio

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