ruby-on-rails - 我在尝试运行 cucumber 测试时遇到错误,该测试使用 selenium-webdriver 操作确认对话框

标签 ruby-on-rails selenium-webdriver cucumber

我只是想让我的 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/

相关文章:

ruby-on-rails - 安装ActiveAdmin gem并运行 “rails db:seed”和 “rails g active_admin:install”后运行 “rails db:migrate”时出错

java - 在文本区域插入非常大的字符串时,浏览器不支持 : selenium :java

java - 基本 Cucumber 测试项目 - 如何运行 java cucumber.api.cli.Main?

java - 如何从两个具有相同类名的独立 div 中获取文本?

java - 如何在 Eclipse 中安装和设置 Cucumber jar 文件以进行 WebDriver 测试

java - 适用于Android的Gradle:javaexec为什么不选择我的类路径?

ruby-on-rails - ActionMailer 缺少 'template',但仅在测试模式下运行时...直接调用 ActionMailer 基类

ruby-on-rails - ruby on has_many :through上的after_remove,after_add回调

ruby-on-rails - 运行 rake db :drop without failure if database doesn't exist

java - 在标签后的文本框中输入文本