水豚:检查 children 的 div 有 class

Capybara: Check children of a div having class

我正在尝试检查 div 是否有 child 和特定的 class 在水豚中,使用以下代码: 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?`

find return 元素或引发异常,它不会 return 任何响应 empty?,您可以使用 all相反,return 是一个类似对象的数组,但更好的解决方案是使用 Capybara

提供的 have_css 匹配器
expect(page).to have_css('#admin-row-1 .glyphicon-ban-circle')