Search code examples
ruby-on-railsrubyrspectddcapybara

How to use regex in a Capybara finder?


The following works great:

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

But I want to also find

find "img[src='https://www.example.com/image?foo=bar']"

How to use a regex within the attribute in the finder?


Solution

  • You can check that an attribute starts with a certain value using ^=:

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

    The article, The Skinny on CSS Attribute Selectors, describes the various checks (equals, starts with, ends with, etc.):

    #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']")