2009-09-04 23 views
12

Ich benutze Gurke und Webrat für eine Weile. Ich muss jetzt anfangen, Verhaltensweisen zu schreiben, die AJAX-Interaktionen beinhalten, also dachte ich daran, den Selenium-Adapter für Webrat zu verwenden. Kann jemand auf eine einfache und aktualisierte Schritt-für-Schritt-Anleitung für die Installation und Konfiguration von selen + webrat + Gurke hinweisen? Ich möchte Javascript-Szenario mit Nicht-Javascript-Szenarien mischen können.Gurke + Webrat + Selen Anleitung

Antwort

8

Ich verwende Selenium mit rspec in meinem Projekt und erzeuge Code aus einem benutzerdefinierten Formatierer für Selenium IDE.

Es gibt viele Selen für Schienen, aber ich Erfolg mit Selenium-RC http://seleniumhq.org/download/, so auf Ihren PC herunterladen.

Hier sind meine Schritte:

  1. Entpacken und Ausführen> java -jar Selen-server.jar
  2. öffnen Selen-client-Rubin, der doc lesen, es folgen Sie Erfolg erhalten!
  3. gem install rspec, rspec-Schienen-Version 1.2.6 (es nicht, müssen Sie die Version von Selen-Client-Quellcode beschränken Kommentar)
  4. gem install Selen-Client
  5. öffnen Selenium-IDE (Firefox natürlich), Open Options -> Optionen -> Formate
  6. Klicken Sie auf hinzufügen, und diesen Code nun in http://www.techdarkside.com/rspec_export.txt

einfügen, Sie nur für mich Export spec der spec-Ordner, verwende ich spec/features/xxxx_spec.rb Siehe Code unten.

Sehr ähnlicher Ansatz kann bei here

Für webrat + Gurke finden, die neuesten Rspec book alles, was Sie brauchen geben. (Sie haben keine Selen + Gurke Kapitel Finish noch)

Beispiel

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 
Verwandte Themen