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]
コメントを追加