【问题标题】:Trouble using cucumber/capybara/selenium with different browsers在不同的浏览器中使用 cucumber/capybara/selenium 时遇到问题
【发布时间】:2014-10-22 21:55:13
【问题描述】:

我按照this guy 推荐的设置方式设置了我的 env.rb。我在本地启动了我的应用程序,当我运行时 firefox=true bundle exec cucumber features/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/.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' /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucumber/runtime/support_code.rb:180:in load_file' /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucumber/runtime/support_code.rb:83:in block in load_files!' /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucumber/runtime/support_code.rb:82:in each' /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucumber/runtime/support_code.rb:82:in load_files! /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucumber/runtime.rb:184:in load_step_definitions' /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucumber/runtime.rb:42:in run! /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/gems/cucumber-1.3.10/lib/cucumber/cli/main.rb:47: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: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_executable_hooks:15:in eval' /Users/gabrielpumple/.rvm/gems/ruby-1.9.3-p547/bin/ruby_executable_hooks:15:in '

我已经安装了 poltergeist/phantomjs 并运行 bundle install。我的同事和我的测试在 chrome 中正常工作,但我们需要在不同的浏览器上运行它们。任何帮助是极大的赞赏。

【问题讨论】:

    标签: ruby-on-rails macos selenium-webdriver cucumber capybara


    【解决方案1】:

    嗯,我从同事那里得到了一些帮助,现在测试正在 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 驱动程序,或者如果我有一个非常简单的测试我希望能够运行。我会在查看它是否在 IE 上正常工作后进行更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多