Tag: capybara

使用RSpec和Capybara检查图像和图标的存在

有没有一种很好的方法来检查使用rspec和水豚的图像和favicons的存在? 我可以查看favicon和图像的DOM,但我希望能够检查这些图像是否也加载。 这对rspec和水豚有可能吗?

Capybara方法未定义

我不能让水豚工作。 我正在使用capybara 2.0.0 我收到这个错误 Failure/Error: visit “/users/sign_in” NoMethodError: undefined method `visit’ for # 在这个规范上 规格/请求/ forgot_password_spec.rb describe “forgot password” do it “redirects user to users firms subdomain” do visit “/users/sign_in” end end 我没有得到任何错误,它找不到水豚,它包含在spec_helper.rb中 spec_helper.rb require ‘rubygems’ require ‘spork’ require ‘database_cleaner’ Spork.prefork do ENV[“RAILS_ENV”] ||= ‘test’ require File.expand_path(“../../config/environment”, __FILE__) require ‘rspec/rails’ require ‘capybara/rspec’ require ‘rspec/autorun’ require […]

Rspec测试应该通过但是失败

我从迈克尔哈特书中得到了这个测试: require ‘spec_helper’ describe “Static pages” do let(:base_title) { “Ruby on Rails Tutorial Sample App” } describe “Home page” do it “should have the h1 ‘Sample App'” do visit ‘/static_pages/home’ page.should have_selector(‘h1’, :text => ‘Sample App’) end it “should have the title ‘Home'” do visit ‘/static_pages/home’ page.should have_selector(‘title’, :text => “#{base_title} | Home”) end end […]

按数据属性查找元素

我正在使用RSpec和capybara-webkit改进我的测试,尝试删除所有的css和xpath选择器 find(‘#edit_user > div:nth-child(7) > div > div > button’).click 我正在寻找替代它们的最佳选择。 我打算使用css class的元素,但一些“专业”水豚测试人员说这不是最好的选择。 所以我的问题是:我可以在测试中使用data属性吗? 如果我有一个元素 Update/button> 我能做到吗? find(‘edit.update’).click ? 你觉得这是个好主意吗? 如果您对此主题有更多想法/信息,请随时发表评论!

如何使用capybara DSL测试Select2元素?

我在页面上有一个Select2元素,通过ajax加载结果。 想用capybara / rspec(使用poltergeist驱动程序)测试这个,但是因为Select2元素实际上是作为隐藏字段开始的,然后在处理完结果后填充 ,没有正常的select , fill_in或者choose帮手会工作。 我现在拥有的是类似的东西 it “should have a search field for events” do click_link “Select an Event” # this works as expected within(‘.select2-container’) do # works find(‘.select2-search input’).set(event.description[0,5]) # won’t work! find(:xpath, “li[text()=’#{event.description}’]”).click end click_button “Search” page.should have_content(“Displaying all 2 photos”) end 上面的第4行,显然capybara可以找到元素,但值不会改变,Select2永远不会进行ajax调用。 (不能使用普通的fill_in ,因为搜索字段元素没有label,id或name属性)

来自水豚的弃权警告

我正在使用rspec-rails 2.14.0.rc1和capybara 2.4.1从rails 3.2.19升级到rails 4.1.5。 所有测试都通过了,我只剩下一个弃用警告: [DEPRECATION] Capybara::Webkit::Driver#accept_js_confirms! is deprecated. Please use Capybara::Session#accept_confirm instead. 导致这种情况的代码行是 page.driver.accept_js_confirms! 如何更改此行以消除弃用警告?

Capybara webkit无效响应错误,如何调试?

我正在尝试为网页编写请求规范。 此页面正在开发中,没有错误。 但是在capybara webkit中运行后,在尝试提交表单后出现此错误: Failure/Error: Unable to find matching line from backtrace Capybara::Driver::Webkit::WebkitInvalidResponseError: Unable to load URL: https://127.0.0.1:33416/sign_in 为了找出原因,我开始在页面上剥离标记和JavaScript。 到了具有普通提交按钮的空表单的程度。 我仍然得到上述错误! 该测试现在字面上: it “should be able create a new foo”, :js, :focus do visit new_foo_path find(‘#submit’).click end 但是,如果我删除:js选项,此测试确实有效: it “should be able create a new foo”, :focus do visit new_foo_path find(‘#submit’).click end Javascript测试在此应用程序的其他页面中有效… 这对我没有意义。 有没有人有任何建议如何从这里调试? […]

为什么我的Capybara / Poltergeist测试不能从jQuery自动完成字段中选择?

更新:经过我自己的大量艰苦工作后,我解决了这个问题。 我很高兴成为任何需要帮助的人的资源。 这是我工作设置的要点。 我已经尝试了所有可以找到Google和SO的解决方案。 以下是我尝试过的一些不同的事情: page.execute_script %Q{$(‘#{selector}’).val(‘#{value}’).trigger(‘keydown’)} 和 fill_in field, with: options[:with] page.execute_script %Q{ $(‘##{field}’).trigger(‘focus’) } page.execute_script %Q{ $(‘##{field}’).trigger(‘keydown’) } 这是失败的: page.should have_selector(‘ul.ui-autocomplete li.ui-menu-item a’) 但是当我在Firebug中查看并在浏览器中测试它时,它肯定存在。 以下是所有细节,包括上述内容的重述。 请记住,自动填充字段在浏览器中正常工作。 listing_integration_spec.rb require “spec_helper” describe “Listing Integration” do let!(:user) { login_user } it “lets a user add information listing”, js: true do listing = create(:listing, user: user) click_link(‘Additional […]

如何在Rails 3中使用Capybara从选择框中选择日期?

我正在使用RSpec和Capybara为Rails 3项目中的控制器编写规范,我想从选择框中选择当前日期。 我试过了: select Date.today, :from => ‘Date of birth’ 但规格失败了,我得到错误: 失败/错误:选择Date.today,:from =>’出生日期’NoMethodError:未定义的方法`to_xpath’for Mon,2011年7月18日:日期 怎么解决? PS在视图文件中我使用simple_form_for标记,选择框由代码生成: f.input :date_of_birth

关于current_path对象,Rspec和capybara,visit和get方法之间的区别

我可能在这里混淆机架和水豚方法 let!(:admin){FactoryGirl.create(:admin)} # test passes describe “visiting #edit page” do before { visit edit_user_path(admin) } specify { current_path.should eq(edit_user_path(admin)) } end # test fails describe “getting #edit page” do before { get edit_user_path(admin) } specify { current_path.should eq(edit_user_path(admin)) } end 第二次测试失败了: Failure/Error: specify { current_path.should eq(edit_user_path(admin)) } expected: “/users/51/edit” got: “/users/51” (compared using ==) 在before(:each)块之前,将current_path设置为/users/51 […]