Пиша тест за релси app, използвам site_prism, capybara, селен и краставица. Как мога да настроя драйвер на Селен да изпълнява моите тестове в браузъра (firefox)?
Например, това е една от характеристиките:
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
Това е моят функции / 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 мога да стартирам сценарий в браузъра така:
Capybara.app_host = "http://0.0.0.0:9292"
session = Capybara::Session.new(:selenium)
session.visit "/home"
session.driver.browser.quit
Но! Използвайки site_prism, аз просто имам метод # load. Може би трябва да се интегрира метод на натоварване с capybara сесия, но как мога да направя това?
В повечето случаи аз правя всичко, както е описано в документацията (cypabara wiki on github), но моите тестове се изпълняват без браузър. И не мога да разбера защо.
Моля помогнете. Благодаря.
Отговори:
4 за отговор № 1Всъщност сте създали браузър в настройка на селен:
Capybara.register_driver :selenium do |app|
profile = Selenium::WebDriver::Firefox::Profile.new
Capybara::Selenium::Driver.new( app, :browser => :firefox, :profile => profile )
end
По подразбиране драйверът на селен използва Firefox като браузър по подразбиране. Можете да го зададете в настройките на capybara:
Capybara.default_driver = :selenium
За site_prism имате нужда от такива изисквания:
require "capybara"
require "capybara/dsl"
require "capybara/cucumber"
require "selenium-webdriver"
require "site_prism"