簡體   English   中英

在不同的瀏覽器上使用黃瓜/水豚/硒的麻煩

[英]Trouble using cucumber/capybara/selenium with different browsers

我按照此人推薦的設置方式設置了env.rb。 我在本地啟動了我的應用程序,當我運行firefox = true bundle exec黃瓜功能/01_login.feature時,我得到了以下內容

無法加載此類文件-capybara / poltergeist(LoadError)/Users/gabrielpumple/bi/features/support/env.rb:3:in require' /Users/gabrielpumple/bi/features/support/env.rb:3:in /Users/gabrielpumple/bi/features/support/env.rb require' /Users/gabrielpumple/bi/features/support/env.rb:3:in '/Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucumber/rb_support/rb_language.rb:122:in load' /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucumber/rb_support/rb_language.rb:122:in load_code_file' load' /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucumber/rb_support/rb_language.rb:122:in p547 /gems/cucumber-1.3.10/lib/cucumber/runtime/support_code.rb:180: load_file' /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucumber/runtime/support_code.rb:83:in塊中! /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucumber/runtime/support_code.rb:82:在each' /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucumber/runtime/support_code.rb:82:in /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucumber/runtime.rb:184: load_step_definitions' /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucumber/runtime.rb:42:in運行中! /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucumber/cli/main.rb:47: execute!' /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/bin/cucumber:13:in execute!' /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/bin/cucumber:13:in “/Users/gabrielpumple/.rvm/gems/ruby-1.9.3- p547 / bin / cucumber:23:在load' /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/bin/cucumber:23:in '/Users/gabrielpumple/.rvm/gems/ruby-1.9 .3-p547 / bin / ruby​​_executable_hooks:15:in eval' /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/bin/ruby_executable_hooks:15:in '

我已經安裝了poltergeist / phantomjs並運行捆綁安裝。 我和我的同事已經在chrome中正常運行了這些測試,但是我們需要在不同的瀏覽器上運行它們。 任何幫助是極大的贊賞。

好吧,我從同事那里得到了一些幫助,現在這些測試已在Firefox中運行,希望很快會在ie上運行。 這是他如何更改env.rb文件

require 'cucumber/rails'
Capybara.default_selector = :css
cb = ENV['CURRENT_BROWSER']
testbrowser = cb ? cb.downcase.to_sym : :firefox
puts "-------------- current browser: #{testbrowser}........."
Capybara.register_driver :selenium do |app|
  if RbConfig::CONFIG['host_os'][/linux/] && testbrowser.to_s.eql?("CHROME".downcase)
    Capybara::Selenium::Driver.new(app, {:browser => :remote, :url => "http://127.0.0.1:9515"})
  else
    if testbrowser.eql?(:chrome)
      Capybara::Selenium::Driver.new(app, :browser => :chrome, :switches => %w[--test-type])
    elsif testbrowser.eql?(:safari)
       Capybara::Selenium::Driver.new(app, :browser => :safari, :switches => %w[--test-type])
    elsif testbrowser.eql?(:internetexplorer)
      Capybara::Selenium::Driver.new(app, :browser => :internetexplorer, :switches => %w[--test-type])
    else
      Capybara::Selenium::Driver.new(app, :browser => testbrowser)
    end
  end
end

ActionController::Base.allow_rescue = false

begin
  DatabaseCleaner.strategy = :transaction
rescue NameError
  raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
end

Cucumber::Rails::Database.javascript_strategy = :truncation

然后,當我從命令行運行功能時,

bundle exec cucumber CURRENT_BROWSER=chrome feature/myFeature.feature

對於Chrome,或

bundle exec cucumber feature/myFeature.feature

對於Firefox(默認)。 Opera驅動程序仍然不想為我工作,只有1%的人使用它,因此我並不擔心,Safari驅動程序不支持模式交互,因此,如果您的測試涉及驗證窗口或故意進行交互失敗說,登錄后,Safari無法使用。 我保留了Safari選項,以防它們更新Safari驅動程序,或者如果我有一個非常簡單的測試,我希望能夠運行。 我將在它在IE上正常運行后進行更新。

暫無
暫無

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

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