Ошибка первого предиката с функцией contains()
.
contains()
принимает два параметра. Первый параметр - это значение для тестирования, а второй - значение для поиска. Это должно быть [contains(@href,'/file/download/id/" + downloadID + "')]
- или вы можете просто проверить все значение с помощью
[@href='/file/download/id/" + downloadID + "']
В последней части вашего XPath есть пара проблем: /@*[title()='Download file']
/@*
вместо применения другого фильтра предикатов к сопоставленному элементу, вы выбираете все атрибуты сопоставленных элементов, а затем
[title()='Download file']
- это фильтр предикатов, который пытается выбрать только те атрибуты, которые имеют title()
, равный «Загрузить файл»
- Однако, нет
title()
селектора узла или функции для фильтрации этих атрибутов
Вы можете использовать несколько предикатов и настроить эту последнюю часть XPath так:
//*[@href='/file/download/id/" + downloadID + "'][@title='Download file']
Вы можете объединить эти фильтры предикатов и протестировать несколько выражений в одном и том же предикате с помощью операторов and
и or
.
//*[@href='/file/download/id/" + downloadID + "' and @title='Download file']