2

Я пишу тест для приложения rails, я использую site_prism, capybara, selenium и огурец. Как настроить драйвер Selenium для запуска моих тестов в браузере (firefox)?Как правильно проверить конфигурацию rails для запуска в браузере? (site_prism, cucumber, capybara, selenium webdriver)

Например, это одна из особенностей:


    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 

Это мой функции/поддержка/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, у меня просто метод загрузки страницы #. Возможно, мне нужно интегрировать метод загрузки с сеансом capybara, но как я могу это сделать?

В основном, я делаю все, как описано в документации (cypabara wiki on github), но мои тесты выполняются без браузера. И я не понимаю, почему.

Пожалуйста, помогите. Благодарю.

ответ

4

На самом деле вы настроили браузер настройки селена:

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

По умолчанию драйвера селена использовать Firefox в качестве браузера по умолчанию. Вы можете установить его в настройках водосвинку:

Capybara.default_driver = :selenium 

Для site_prism вам нужны такие требования:

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

Я просто забыл требовать «Капибара/DSL». Большое спасибо, @Helga Chekh – bmalets