config railsは、ブラウザーで実行するためにどの程度正しくテストしますか?(site_prism、cucumber、capybara、selenium webdriver)

bmalets

Railsアプリのテストを書いています。site_prism、capybara、selenium、cucumberを使用しています。ブラウザ(Firefox)でテストを実行するようにSeleniumドライバを設定するにはどうすればよいですか?

たとえば、これは次の機能の1つです。


    Given /^I navigate to Dashboard page$/ do 
      @page = DashboardPage.new # Dashboardpage is inheritor of SitePrism::Page
      @page.load
      @page.login_form.login_field.set 'admin'
      @page.login_form.password_field.set 'test'
      @page.login_form.signin_button.click
      @page.title.include? 'Dashboard'  
    end

これは私のfeatures / support /env.rb設定ファイルです:


    require 'cucumber/rails'
    require 'capybara'  
    require 'capybara/cucumber'
    require 'selenium-webdriver' 
    require 'site_prism'

    # cypabara settings
    Capybara.default_selector       = :css
    Capybara.ignore_hidden_elements = false 
    Capybara.default_wait_time      = 20 
    Capybara.app_host               = "http://0.0.0.0:9292" 

    # selenium setting
    Capybara.register_driver :selenium do |app| 
        profile = Selenium::WebDriver::Firefox::Profile.new 
        Capybara::Selenium::Driver.new( app, :browser => :firefox, :profile => profile ) 
    end

    # enable/disable rescue
    ActionController::Base.allow_rescue = false

    # DB cleaner strategy
    begin
      DatabaseCleaner.strategy = :transaction
    rescue NameError
      raise "You need to add database_cleaner to your Gemfile to use it."
    end

    # JS strategy
    Cucumber::Rails::Database.javascript_strategy = :truncation

私は知っています、カピバラで私はこのようなブラウザでシナリオを実行することができます:


      Capybara.app_host = 'http://0.0.0.0:9292'
      session = Capybara::Session.new(:selenium)
      session.visit '/home'
      session.driver.browser.quit

だが!site_prismを使用して、Page#loadメソッドを使用します。ロードメソッドをcapybaraセッションと統合する必要があるかもしれませんが、どうすればこれを行うことができますか?

ほとんどの場合、ドキュメント(githubのcypabara wiki)に記載されているとおりにすべてを実行しますが、テストはブラウザーなしで実行されます。そして、その理由がわかりません。

助けてください。ありがとう。

ヘルガチェク

実際には、セレン設定でブラウザを設定しました。

Capybara.register_driver :selenium do |app| 
   profile = Selenium::WebDriver::Firefox::Profile.new 
   Capybara::Selenium::Driver.new( app, :browser => :firefox, :profile => profile ) 
end

デフォルトでは、SeleniumドライバーはFirefoxをデフォルトのブラウザーとして使用します。カピバラの設定で設定できます:

Capybara.default_driver = :selenium

site_prismの場合、次のような要件が必要です。

require 'capybara'
require 'capybara/dsl'
require 'capybara/cucumber'
require 'selenium-webdriver'
require 'site_prism'

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ