2

我正在寫軌測試的應用程序,我使用site_prism,水豚,硒和黃瓜。 如何設置Selenium驅動程序在瀏覽器(firefox)中運行我的測試?如何正確配置rails測試以在瀏覽器中運行它? (site_prism,黃瓜,水豚,硒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,我只有頁面#加載方法。也許我需要整合加載方法與水豚會議,但我怎麼能做到這一點?

大部分情況下,我按照文檔(github上的cypabara wiki)描述了一切,但我的測試運行時沒有瀏覽器。我不明白爲什麼。

請幫助。謝謝。

回答

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'。非常感謝,@赫爾加謝赫 – bmalets