Selenium Xpath, использующий значение из метода gettext (), не работает - PullRequest
0 голосов
/ 16 октября 2018

В моем приложении есть следующий HTML-элемент.

  <td height="25">
&nbsp;&nbsp;&nbsp; 
 <i>text1</i>
text2
  </td>

Моя цель - получить элемент td для моего тестового сценария. Для этого я получил текст внутри тега td, используя метод getText для элемента ниже.

xpath = "//td/i[contains(text(),'text1')]/parent::td"

Метод вернул следующий текст (с начальными пробелами)

      text1 text2

Поэтому я скопировал этот текст в приведенный ниже xpath, чтобы получить элемент td.

xpath = "//td[contains(text(),'text1 text2')]"

Однако я получил исключение NosuchElementдля вышеуказанного элемента.Как это возможно?

Примечание: я не могу использовать первый xpath в моем скрипте, потому что есть несколько таких элементов td с общим текстом тега i (текст 1), но с другим текстом тега td (text2, text3)...)

1 Ответ

0 голосов
/ 16 октября 2018

Selenium перехватывает WebElement, в котором содержится элемент и все дочерние элементы текста.В этом случае текст элемента <td> представляет собой комбинацию &nbsp;&nbsp;&nbsp;, text1 и text2, поэтому при получении текста с использованием первого выражения вы получаете text1 text2.Тем не менее, в DOM нет элемента с текстом text1 text2, так как text1 относится к элементу <i>.Попробуйте

//i[contains(text(),'text1')]/parent::td[contains(text(),'text2')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...