Поиск элементов с помощью xpath, где некоторые элементы имеют вложенные элементы, а другие нет - PullRequest
0 голосов
/ 24 марта 2020

Добрый вечер. У меня есть таблица в Chrome, для которой я пытаюсь получить все значения. Я использую Java и селен. Я помещаю заголовки в список, а затем просматриваю строки, получаю каждую ячейку, определяю ее положение, получаю заголовки и создаю карту. Надеюсь, это имеет смысл.

Я получаю строку за раз и выполняю row.findElements (By.xpath ())) ....

Таблица будет выглядеть примерно так: следующий. Я собираюсь использовать {tr}, {td} и т. Д. c. Вместо <>, потому что это утомительно печатает lt и gt.

 {tr}
   {td} 
     {input value='this is a cell value'} 
   {/td}
 {/tr}
 {tr}
   {td} 
     {span @class='MyClass'} This is a cell value {/span}
   {/td}
 {/tr}
 {tr}
    {td class='Want This One'} Want this value {/td}
 {/tr}

, когда не было класса = 'Want This Один ', я мог бы сделать

 row.findElements(By.xpath("./td//*[1][self::input[@value or @title] or self::span[@class='MyClass']")

, но сейчас он не находит {td class =' ​​Want This One '}

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

1 Ответ

0 голосов
/ 24 марта 2020

Попробуйте использовать это выражение xpath:

//tr/td[@class='Want This One']/text()

Вывод:

Хотите это значение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...