如何通过匹配在水豚的元素的确切文本find一个元素
我有以下两个HTML元素
<a href="/berlin" >Berlin</a> <a href="/berlin" >Berlin Germany </a>
我试图通过使用以下水豚方法find元素
find("a", :text => "berlin")
以上将返回两个元素,因为两者都包含文本柏林。
有没有一种方法来匹配水豚的确切文字?
使用正则expression式而不是string作为:text
键的值:
find("a", :text => /\ABerlin\z/)
查看Method: Capybara::Node::Finders#all
文档的“选项哈希”部分。
PS:文本匹配区分大小写。 您的示例代码实际上引发了一个错误:
find("a", :text => "berlin") # => Capybara::ElementNotFound: # Unable to find css "a" with text "berlin"
取决于您使用的是哪个版本的gem
find('a', text: 'Berlin', exact: true)
可能会被弃用。 在这种情况下,你将不得不使用
find('a', text: 'Berlin', match: :prefer_exact)
只要使用水豚的确切选项 :
Capybara.exact = true