Огурец + вебрат + селен гид

Я уже давно использую Cucumber и Webrat. Теперь мне нужно начать писать поведение, которое включает взаимодействия AJAX, поэтому я подумал об использовании адаптера Selenium для Webrat. Кто-нибудь может указать простое и обновленное пошаговое руководство по установке и настройке selenium+webrat+cucumber? Я хотел бы иметь возможность смешивать сценарии JavaScript с не сценариями JavaScript.

1 ответ

Решение

Я использую Selenium с rspec в своем проекте и генерирую код из пользовательского средства форматирования для Selenium IDE.

Существует много селена для рельсов, но я успешно использую Selenium-RC http://seleniumhq.org/download/, так что загрузите его на свой компьютер.

Вот мои шаги:

  1. Разархивируйте и запустите> java -jar selenium-server.jar
  2. Откройте selenium-client-ruby, прочитайте документацию, следуйте ей, и вы получите успех!
  3. gem install rspec, rspec-rails версия 1.2.6 (это не так, вам нужно комментировать ограничение версии исходного кода selenium-client)
  4. гем установить селен-клиент
  5. Откройте Selenium-IDE (конечно, Firefox), откройте "Параметры" -> "Параметры" -> "Форматы".
  6. Нажмите "Добавить" и вставьте этот код в http://www.techdarkside.com/rspec_export.txt

Теперь вы просто экспортируете спецификацию в свою папку для меня, я использую spec/features/xxxx_spec.rb, см. Код ниже.

Очень похожий подход можно найти здесь

Для вебрат + огурец, последняя книга Rspec даст все, что вам нужно. (Они еще не закончили главу "Селен + огурец")

пример

 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
Другие вопросы по тегам