我正在尝试使用以下代码检查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?`
答案 0 :(得分:1)
find
返回一个元素或引发一个异常,它不返回响应empty?
的任何内容,你可以使用all
而不是返回一个像object这样的数组但是更好的解决方案是使用Capybara提供的has_css匹配器
expect(page).to have_css('#admin-row-1 .glyphicon-ban-circle')