ruby - Capybara - have_css 在不应该匹配空字符串时匹配
问题描述
水豚的新人。测试以下代码。值可以是动态的,包括“”(空)。
within("#foo") do
expect(page).to have_css("td:nth-child(2)", text: value)
end
问题是:当 value = "" 时,即使 td:nth-child(2) 中有文本,它也匹配为 true。可能的原因:内容是异步渲染的,当 Capybara 第一次检查时,文本还没有出现(即“”),所以这是真的。
只有当文本最后确实为空时才匹配true,而当它不为空时才匹配false?
解决方案
默认情况下,Capybarastext
参数会匹配子字符串,因此“”将匹配任何文本内容(因为“”是所有内容的子字符串)。如果您想要完全匹配,那么您需要执行以下任一操作
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)
推荐阅读
- python - np.logical_and 运算符无法正常工作(numpy)
- vue.js - Vuejs 路由器防护工作意外
- c# - C#简单程序慢
- java - Java 2D 游戏中的射速问题
- javascript - 如何使用 JavaScript 加载大型本地文件?
- ios - 如何将带有参数的 iOS URl Schema 共享为我可以单击的链接,而不仅仅是字符串
- c# - UWP ListView DataTemplate 绑定
- angular - Angular Openvidu 作为子组件
- ruby-on-rails - 为什么我会收到此错误:ActiveRecord::AssociationTypeMismatch?
- c - C中的套接字:关闭套接字的正确方法