Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在不同浏览器中使用cucumber/capybara/selenium时出现问题_Ruby On Rails_Macos_Selenium Webdriver_Cucumber_Capybara - Fatal编程技术网

Ruby on rails 在不同浏览器中使用cucumber/capybara/selenium时出现问题

Ruby on rails 在不同浏览器中使用cucumber/capybara/selenium时出现问题,ruby-on-rails,macos,selenium-webdriver,cucumber,capybara,Ruby On Rails,Macos,Selenium Webdriver,Cucumber,Capybara,我按照建议的设置方式设置env.rb。我在本地启动了我的应用程序,当我运行时 firefox=true bundle exec cumber features/01_login.feature 我得到以下信息 无法加载这样的文件--capybara/poltergeist(LoadError) /用户/gabrielpumple/bi/features/support/env.rb:3:inrequire' /Users/gabrielpumple/bi/features/support/env

我按照建议的设置方式设置env.rb。我在本地启动了我的应用程序,当我运行时 firefox=true bundle exec cumber features/01_login.feature 我得到以下信息

无法加载这样的文件--capybara/poltergeist(LoadError) /用户/gabrielpumple/bi/features/support/env.rb:3:in
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/cucucumber/rb_support/rb_language.rb:122:in
load'
/Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucucumber/rb_support/rb_language.rb:122:in
load\u code\u文件' /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucucumber/runtime/support_code.rb:180:in
load_文件'
/Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucucumber/runtime/support_code.rb:83:in
load\u文件中的块!' /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucucumber/runtime/support_code.rb:82:in
每个'
/Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucucumber/runtime/support_code.rb:82:in
加载\u文件!' /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucucumber/runtime.rb:184:in
加载步骤定义'
/Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucucumber/runtime.rb:42:in
run!' /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucucumber/cli/main.rb:47:in
execute!'
/Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/bin/cucucumber:13:in
' /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/bin/cucumber:23:in
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\u可执行文件挂钩:15:in
eval'
/Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/bin/ruby\u可执行文件挂钩:15:in
'


我已经安装了poltergeist/phantomjs并运行了bundle安装。我和我的同事在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
对于铬,或

bundle exec cucumber feature/myFeature.feature
对于Firefox(默认)。opera驱动程序仍然不想为我工作,只有1%的人使用它,所以我不担心,而Safari驱动程序不支持模式交互,因此如果您的测试涉及验证窗口或与故意失败交互,比如登录时,Safari将无法工作。我保留了Safari选项,以防他们更新Safari驱动程序,或者如果我有一个非常简单的测试,我希望能够运行。我会更新后,我已经看到,如果它在IE上正常工作