Ваш предикат проверял, содержит ли какой-либо узел 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')]]