Как получить первый тег, содержащий слово с xpath? - PullRequest
0 голосов
/ 20 декабря 2018

Как я могу получить первую кнопку с типом, классом, идентификатором или НИЧЕГО, содержащим текст (имеет подстроку, равную) close или Close или CLOSE?Я пробовал это:

//button[contains(text(),'close')]

, но это не работает.

1 Ответ

0 голосов
/ 20 декабря 2018

Ваш предикат проверял, содержит ли какой-либо узел text() слово "close".Однако атрибуты не являются text() узлами.

Вы можете настроить свой предикат так, чтобы он соответствовал любому атрибуту, а затем использовать предикат для этих атрибутов, чтобы проверить, является ли name() типом "тип", "классом" или«id» и значение lower-case() содержит «close»:

С XPath 2.0 вы можете использовать это:

//button[@*[ name() = ('type','class','id') and contains(lower-case(.), 'close') ]]

С XPath 1.0 это займет немного больше работы.Вы можете перевести заглавные буквы в строчные:

//button[
    @*[name() = 'type' or name() = 'class' or name() = 'id']
      [contains(translate(.,'CLOSE','close'), 'close')]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...