Capybara:再也找不到css了

时间:2014-04-14 13:37:34

标签: ruby-on-rails twitter-bootstrap rspec capybara

页面来源(来自save_and_open_page):

<a class="btn btn-mini btn-danger" data-confirm="Are you sure?" data-method="delete" href="/slides/1" rel="nofollow">Delete</a>

规格/特征/ slides_spec.rb:

scenario "Delete slide" do
    visit album_slides_url slide.album
    # save_and_open_page
    expect{page.find('btn btn-mini btn-danger').click}.to change(Slide, :count).by(-1)
  end

错误:

Unable to find css "btn btn-mini btn-danger"

针对类似问题有一些Q&amp; A但我没有找到任何解决方案。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

在CSS选择器中,通过以点开头来识别类,容易忘记。此外,如果要查找具有指定的所有类的元素,则它们之间不能有任何空格;否则它正在寻找孩子。

page.find('.btn.btn-mini.btn-danger')

答案 1 :(得分:1)

或者,您也可以使用

expect{click_link('Delete')}.to change(Slide, :count).by(-1)

在这种text元素(..)和Delete事件中找到anchor ie click_link要简单得多。