如何在Capybara finder中使用正则表达式?

B S*_*ven 9 ruby tdd rspec ruby-on-rails capybara

以下作品很棒:

find "img[src='https://www.example.com/image']"
Run Code Online (Sandbox Code Playgroud)

但我也想找到

find "img[src='https://www.example.com/image?foo=bar']"
Run Code Online (Sandbox Code Playgroud)

如何在finder中的属性中使用正则表达式?

Jus*_* Ko 27

您可以使用以下命令检查属性是否以特定值开头^=:

find("img[src^='https://www.example.com/image']")
Run Code Online (Sandbox Code Playgroud)

文章"CSS属性选择器上的Skinny"描述了各种检查(等于,开头,结尾等):

#Equals
find("img[src='https://www.example.com/image']")

#Contains somewhere
find("img[src*='https://www.example.com/image']")

#Begins with
find("img[src^='https://www.example.com/image']")

#Ends with
find("img[src$='https://www.example.com/image']")
Run Code Online (Sandbox Code Playgroud)