我有以下的测试Rspec的水豚的webkit找不到按钮标签
require "rails_helper"
RSpec.feature "Menu", :type => :feature do
let!(:articles) { create_list(:article, 10) }
let!(:quotes) { create_list(:quote, 2) }
before { visit "/" }
scenario "should not have Javascript errors" do
Capybara.current_driver = :webkit
page.find("#menu-button").click
expect(page).not_to have_errors
end
end
,也未能与消息
水豚:: ElementNotFound: 无法找到的CSS “#菜单键”
我也试过
click_on "Open Menu"
click_button "Open Menu"
click_link "Open Menu"
page.find_button(id: 'menu-button').click
find("#menu-button").click
我想测试基础6具有的画布外特性。
application.html.erb文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title><%= content_for?(:title) ? yield(:title) : "Stargazers.news" %></title>
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application", 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
</head>
<body>
<div class="off-canvas-wrapper">
<div class="off-canvas position-left" id="offCanvas" data-off-canvas>
<button class="close-button" arial-label="Close menu" type="button" data-close></button>
<div id="search">
<%= form_tag({controller: "/pages", action:"search"}, method: "get") do %>
<%= label_tag(:search, "Search for:") %>
<%= text_field_tag(:search) %>
<%= submit_tag("Search") %>
<% end %>
</div>
</div>
<div class="off-canvas-content" data-off-canvas-content>
<div class="top-bar">
<div class="top-bar-right">
<button id="menu-button" type="button" class="button" data-toggle="offCanvas">Open Menu</button>
</div>
</div>
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
<%= yield %>
</div>
</div>
</body>
</html>
的index.html.erb文件
<div id="quote">
<%= @quote.body %>
</div>
<% @articles.each do |article| %>
<article>
<header> <%= article.title%> </header>
<div class="content-summary"> <%= article.body %> </div>
</article>
<hr/>
<% end %>
rails_helper.rb文件
ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)
abort("The Rails environment is running in production mode!") if Rails.env.production?
require 'spec_helper'
require 'rspec/rails'
require 'capybara/rspec'
require 'simple_bdd/rspec'
ActiveRecord::Migration.maintain_test_schema!
RSpec.configure do |config|
Capybara.javascript_driver = :webkit
config.include FactoryGirl::Syntax::Methods
config.include RSpecHtmlMatchers
config.include Devise::Test::IntegrationHelpers, type: :feature
config.use_transactional_fixtures = true
config.before(:suite) do
DatabaseCleaner.strategy = :truncation
DatabaseCleaner.clean_with(:truncation)
end
config.before(:each) do
DatabaseCleaner.start
end
config.after(:each) do
DatabaseCleaner.clean
end
config.infer_spec_type_from_file_location!
config.filter_rails_from_backtrace!
end
Shoulda::Matchers.configure do |config|
config.integrate do |with|
with.test_framework :rspec
with.library :rails
end
end
的Gemfile
source 'https://rubygems.org'
git_source(:github) do |repo_name|
repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
"https://github.com/#{repo_name}.git"
end
gem 'rails', '~> 5.0.1'
gem 'pg', '~> 0.18'
gem 'puma', '~> 3.0'
gem 'sass-rails', '~> 5.0'
gem 'foundation-rails'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.2'
gem 'jquery-rails'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'
gem "paperclip", "~> 5.0.0"
gem 'devise'
group :development, :test do
gem 'byebug', platform: :mri
gem 'factory_girl_rails'
gem 'rspec-rails', '~> 3.5'
gem 'rspec-html-matchers'
gem 'ffaker'
gem 'simple_bdd'
end
group :development do
gem 'web-console', '>= 3.3.0'
gem 'listen', '~> 3.0.5'
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
gem "better_errors"
end
group :test do
gem 'capybara-webkit'
gem 'database_cleaner'
gem 'shoulda-matchers', '~> 3.1'
end
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
我的Qt版本是5.5.1 ,我在Ubuntu 16.04
hello @ThomasWalpole,'off-canvas-content'是可见元素,我也尝试过'page.driver.console_messages'和'page.driver.error_messages',我没有得到任何错误。但是,当我评论了'page.find(“#menu-button”),点击'并且得到了'expected#以响应'has_errors?'消息。我觉得这个消息很困惑,因为我认为这意味着webkit没有安装。 –
@stupidone拥有完整的测试信息使其更清晰 - 我已经更新了我的答案。 –