12

キュウリとウェブラットをしばらく使っています。AJAXインタラクションを含む動作を書き始める必要があるので、Webrat用のSeleniumアダプターを使用することを考えていました。セレン+ウェブラット+キュウリをインストールして構成するための簡単で更新されたステップバイステップガイドを誰かが指摘できますか?javascriptシナリオと非javascriptシナリオを混在させたいです。

4

1 に答える 1

8

プロジェクトでrspecを使用してSeleniumを使用しており、SeleniumIDEのカスタムフォーマッターからコードを生成しています。

レール用のセレンはたくさんありますが、Selenium-RC http://seleniumhq.org/download/を使用して成功したので、PCにダウンロードしてください。

これが私のステップです:

  1. 解凍して実行>java-jar selenium-server.jar
  2. selenium-client-rubyを開き、ドキュメントを読んで、それに従ってください。成功します。
  3. gem install rspec、rspec-railsバージョン1.2.6(そうではなく、selenium-clientソースコードのバージョン制限にコメントする必要があります)
  4. gem install selenium-client
  5. Selenium-IDE(もちろんFirefox)を開き、[オプション]->[オプション]->[フォーマット]を開きます
  6. [追加]をクリックして、このコードをhttp://www.techdarkside.com/rspec_export.txtに貼り付けます

これで、specをspecフォルダーにエクスポートするだけです。spec/ features/xxxx_spec.rbを使用します。以下のコードを参照してください。

非常によく似たアプローチがここにあります

webrat + cucumberの場合、最新の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
于 2009-09-04T17:42:14.373 に答える