我只是想让我的 cucumber 测试接受确认对话,在我的 cucumber 测试中,我安装了 selenium-webdriver 并且它给了我这个错误:
无法在 60 秒内获得稳定的 Firefox 连接 (127.0.0.1:7055) (Selenium::WebDriver::Error::WebDriverError)
我尝试运行 gem update selenium-webdriver,但没有成功。
这是我的功能文件:
功能:删除用户 为了删除现有用户 作为用户 我希望能够从数据库中删除用户
Scenario: User successfully deletes another user
Given I am currently on the Users page
When I select a user to delete
Then the user should no longer visible on the users page
以下是步骤文件的相关部分:
功能:删除用户,场景:用户成功删除另一个用户
当/^我选择用户删除js时:true$/do page.evaluate_script('window.confirm = function() { return true; }') find(:xpath, "//a[@href='/users/2?page=1' and @data-confirm='您确定吗?']").click 结束
然后/^用户在用户页面上不应再可见$/do 期望(页面).to have_no_content“[email protected]” 结束
这是 env.rb 文件:
需要“ cucumber /rails ” 需要“selenium-webdriver”
Dir["../../spec/factories/*.rb"].each {|文件|需要相对文件}
ActionController::Base.allow_rescue = false
如果您的应用没有数据库,请删除/注释掉以下行。
对于某些数据库(例如 MongoDB 和 CouchDB),您可能需要使用 :truncation 来代替。
开始 DatabaseCleaner.strategy = :事务 救援名称错误 raise “如果你想使用database_cleaner,你需要将它添加到你的Gemfile(在:test组中)。” 结束
做之前 数据库清理程序.start 加载 Rails.root.join('db/seeds.rb') 结束
做完|场景|之后 数据库清理器.clean 结尾 Cucumber::Rails::Database.javascript_strategy = :截断
这是 gemfile:
来源'https://rubygems.org '
gem “薄”
gem '回形针', '~> 4.1'
gem“简单导航”
gem 'will_paginate', '~> 3.0'
使用 Rails 4.1.5 运行时,Windows 和某些 Linux 平台需要!
gem 'tzinfo-data'
改为捆绑边缘 Rails:gem 'rails',github:'rails/rails'
gem “rails ”,“4.1.5”
使用sqlite3作为Active Record的数据库
gem 'sqlite3'
对样式表使用 SCSS
gem 'sass-rails', '~> 4.0.3'
使用 Uglifier 作为 JavaScript 资源的压缩器
gem 'uglifier', '>= 1.3.0'
将 CoffeeScript 用于 .js.coffee 资源和 View
gem 'coffee-rails', '~> 4.0.0'
gem 'oauth', '~>0.4.6'
参见https://github.com/sstephenson/execjs#readme更多支持的运行时
gem 'therubyracer',平台::ruby
使用 jquery 作为 JavaScript 库
gem“jquery-rails”,“〜> 2.3.0” gem 'jquery-ui-rails', '4.1.2'
Turbolinks 可以更快地访问您的网络应用程序中的链接。了解更多:https://github.com/rails/turbolinks
gem “turbolinks”
轻松构建 JSON API。了解更多:https://github.com/rails/jbuilder
gem 'jbuilder', '~> 1.2'
组:doc do # bundle exec rake doc:rails 在 doc/api 下生成 API。 gem 'sdoc',要求: false 结束
组:测试做 gem 'cucumber-rails', :require => false gem “发布” gem 'database_cleaner' gem 'selenium-webdriver', "~> 2.38.0" gem 'rspec-rails', '~> 3.0.0' gem 'factory_girl_rails' 结束
请有人建议测试此功能的最佳方法,该方法允许我接受确认对话框?
最佳答案
检查您正在使用的 selenium-webdriver 版本与 Firefox 版本的兼容性,并在 gemfile.lock 文件中进行适当的版本更改。 https://selenium.googlecode.com/git/rb/CHANGES
可以在此处找到较旧的 Firefox 版本 https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/
关于ruby-on-rails - 我在尝试运行 cucumber 测试时遇到错误,该测试使用 selenium-webdriver 操作确认对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26984547/