Найти Xpath для элемента в зависимости от значения другого элемента в строке таблицы - PullRequest
0 голосов
/ 27 февраля 2020

Я новичок в Xpath, поэтому, если он не содержит всех соответствующих информационных извинений, дайте мне знать, что вам нужно для его решения.

Я пытаюсь найти Xpath для элемента "раскрыть стрелку", который расширяет строку в таблице. Элемент "раскрыть стрелку" не уникален, поэтому я хотел бы выбрать его на основе текста, содержащегося в другом элементе в той же строке. Компоновка выглядит следующим образом:

<td id="__table2-rows-row10-col0">
    <div class="sapUiTableCellFlex">
        <span id="__table2-rows-row10-    treeicon" title="Expand Node" role="button">
        <div id="__hbox27-__clone101">
            <div id="__data70-__clone101">
            <div id="__data71-__clone101">
                <span id="__text47-__clone101" title="sys-admin">sys-admin</span>

Я бы хотел выбрать элемент с заголовком = "Expand Node"

<span id="__table2-rows-row10-    treeicon" title="Expand Node" role="button">

на основе элемента с заголовком или текстом = "sys-admin"

<span id="__text47-__clone101" title="sys-admin">sys-admin</span>

Я поиграл с различными вариантами, но не могу заставить его работать. Любые идеи будут высоко оценены!

Спасибо

Ответы [ 2 ]

0 голосов
/ 28 февраля 2020

Я в итоге заставил его работать, используя следующий xpath:

//span[@title='sys-admin']/../../preceding-sibling::span[@title='Expand Node']
0 голосов
/ 27 февраля 2020

Чтобы найти элемент с title как Разверните узел относительно элемента с title или text как sys -admin вы можете использовать любой из следующих атрибутов Locator :

  • xpath и title :

    "//span[@title='sys-admin']//ancestor::span[@title='Expand Node']"
    
  • xpath и text () Атрибут:

    "//span[text()='sys-admin']//ancestor::span[@title='Expand Node']"
    
...