在Capybara新建。测试以下代码。值可以是动态的"(空(。
within("#foo") do
expect(page).to have_css("td:nth-child(2)", text: value)
end
问题是:当值="0"时&";,即使td:nth child(2(中有文本,它也匹配为true。可能的原因:内容呈现为异步,当Capybara第一次检查时,文本还不存在(这意味着"(,所以这是真的。
只有当文本末尾确实为空时,才匹配true,而当文本不为空时匹配false,有什么方法吗?
默认情况下,Capybarastext
参数会匹配子字符串,因此"quot;将匹配任何文本内容(因为"是所有内容的子字符串(。如果你想要一个完全匹配,那么你需要进行
expect(page).to have_css("td:nth-child(2)", text: value, exact_text: true)
或者更简洁地说
expect(page).to have_css("td:nth-child(2)", exact_text: value)