在Capybara表的复杂断言

Ale*_*lov 3 cucumber capybara

我的应用中有一张桌子.

在此输入图像描述

使用Capybara和Cucumber,我如何断言值4.5和1.1只发生在Mike的行中?
在Capybara有这样的主张吗?

谢谢!

Joh*_*yer 5

您可以范围内使用以查找特定值的范围:

例如,要声明值4.5发生在Mike的第二列中,请尝试以下操作:

within("table tr:nth-child(2)") do
  find("td:nth-child(2)").text.should == 4.5
end
Run Code Online (Sandbox Code Playgroud)

如果您愿意,可以将它们包装在辅助方法中以便于使用:

def within_row(num, &block)
  within("table tr:nth-child(#{num})", &block)
end

def column_text(num)
  find("td:nth-child(#{num})").text
end
Run Code Online (Sandbox Code Playgroud)

现在,您可以通过执行以下操作对Mike的行进行相同的断言:

within_row(2) do
  column_text(2).should == 4.1
end
Run Code Online (Sandbox Code Playgroud)

希望您会发现其中一种技术对您要做的事情有用.