How to find an image tag by filename using xpath
22,424
You don't need any matches
function. Use:
//img[@src='my_image.png']
Or, if the path can include text before the portion you want to match:
//img['my_image.png'=substring(@src, string-length(@src) - 11)]
This second expression imitates an ends-with
function.
If you don't like hard-coding the substring length, then use:
//img['my_image.png'=substring(@src,
string-length(@src) - string-length('my_image.png') + 1)]
For completeness: in some cases, the following is acceptable:
//img[contains(@src, 'my_image.png')]
Author by
Macario
Updated on April 21, 2020Comments
-
Macario about 4 years
I am running some cucumber features using capybara and I need to check if a certain image is being shown.
I tried this xpath match but apparently the function
matches
is not available://img[matches(@src, "my_image.png")]
-
Macario about 13 yearsThanks, I've used contains since it wasn't an exact match.
-
Derek Prior almost 13 yearsThanks. Been looking all over for a list of xpath functions capybara supports. I was banging my head trying to figure out why my ends-with matcher doesn't work. Do you have a list of supported functions?