Capybara:检查上课的孩子

时间:2016-03-25 13:00:40

标签: ruby-on-rails-4 capybara

我正在尝试使用以下代码检查div是否在Capybara中有特定班级的孩子: expect(find("#admin-row-1 .glyphicon-ban-circle")).to_not be_empty

调试后,我得到以下输出

(byebug) find("#admin-row-1 .glyphicon-ban-circle")
#<Capybara::Node::Element tag="a" path="/html/body/main/div[2]/div/div/div/table/tbody/tr[3]/td[3]/a[2]">

但是,仍然会出现以下期望错误

Failure/Error: expect(find("#admin-row-1 .glyphicon-ban-circle")).to_not be_empty
       expected #<Capybara::Node::Element tag="a" path="/html/body/main/div[2]/div/div/div/table/tbody/tr[3]/td[3]/a[2]"> to respond to `empty?`

1 个答案:

答案 0 :(得分:1)

find返回一个元素或引发一个异常,它不返回响应empty?的任何内容,你可以使用all而不是返回一个像object这样的数组但是更好的解决方案是使用Capybara提供的has_css匹配器

expect(page).to have_css('#admin-row-1 .glyphicon-ban-circle')