簡體   English   中英

如何正確配置rails測試以在瀏覽器中運行它? (site_prism,黃瓜,水豚,硒webdriver)

[英]How correctly config rails test to run it in browser? ( site_prism, cucumber, capybara, selenium webdriver )

我正在為Rails應用編寫測試,我使用site_prism,水豚,硒和黃瓜。 如何設置Selenium驅動程序以在瀏覽器(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.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

默認情況下,硒驅動程序使用Firefox作為默認瀏覽器。 您可以在水豚設置中進行設置:

Capybara.default_driver = :selenium

對於site_prism,您需要以下要求:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM