Как найти тег изображения по имени файла с помощью xpath - PullRequest
11 голосов
/ 21 апреля 2011

Я использую некоторые функции огурца, используя капибару, и мне нужно проверить, отображается ли определенное изображение.

Я пробовал это совпадение с xpath, но, очевидно, функция matches недоступна:

//img[matches(@src, "my_image.png")]

1 Ответ

24 голосов
/ 21 апреля 2011

Вам не нужна никакая функция matches.Используйте:

//img[@src='my_image.png']

Или, если путь может включать текст перед частью, которую вы хотите сопоставить:

//img['my_image.png'=substring(@src, string-length(@src) - 11)]

Это второе выражение имитирует функцию ends-with.

Если вам не нравится жесткое кодирование длины подстроки, используйте:

//img['my_image.png'=substring(@src, 
          string-length(@src) - string-length('my_image.png') + 1)]

Для полноты: в некоторых случаях допустимо следующее:

//img[contains(@src, 'my_image.png')]
...