Почему моя длина строки XPath не работает? (Java) - PullRequest
0 голосов
/ 19 января 2020
WebElement sendBtn = driver.findElement(By.xpath(
    "//*[contains(.,'About') and contains(.,'/') and (string-length(text()) < 9)]"
));

Я пытаюсь заставить его выбрать элемент, который содержит слово "about" the letter "/" и длину строки меньше 9, но он не выбирает нужные элементы.

1 Ответ

0 голосов
/ 19 января 2020

contains() применяется ко всем текстовым потомкам, поэтому, если вы не укажете имя элемента, вы можете получить всех предков узлов, которые фактически содержат указанную строку.

Чтобы применить предикаты только к фактические тексты в элементах заменить . на text():

//*[ contains(text(), 'About')
     and contains(text(), '/')
     and string-length(text()) < 9
   ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...