/ / Колко правилно конфигуриране на релсите тества за да се стартира в браузъра? (site_prism, краставица, capybara, селен, webdriver) - руби-на релси, краставици, селен-webdriver, capybara, призма

Как да конфигурираме правилно конфигурационните релси, за да се изпълнява в браузъра (site_prism, краставица, capybara, селен, webdriver) - руби-на релси, краставици, селен-webdriver, capybara, призма

Пиша тест за релси 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"