Как я могу найти динамический xpath для слова "Pace" в приложении? - PullRequest
0 голосов
/ 02 октября 2019

Мне нужен динамический xpath для слова "Pace" в приведенном ниже коде. Это имя третьего столбца в таблице.

Я пробовал следующее:

//table[contains(@class,'data-grid-table data-grid-fixed-row-table')]//span[contains(@class,'lightning-table-cell-measure-header-value')][contains(text(),'Pace')]

но это, кажется, слишком длинный локатор для моего теста. Есть ли более короткий динамический локатор xpath, который я могу использовать? Вот фрагмент кода, который содержит слово:

<th data-row-index="0" data-column-index="0" data-fixed-row="true" data-fixed-column="false" aria-selected="false" aria-hidden="false" id="data-grid-24-fixedrow0-col0" class="data-grid-table-cell data-grid-table-cell-start data-grid-header-cell" tabindex="0">
   <div class="data-grid-table-cell-box" style="height: 17px;">
      <div class="wave-table-cell-measure-header">
         <span class="wave-table-cell-measure-header-text" data-tooltip="Pace" data-tooltip-on-truncation="true">
            <span class="lightning-table-cell-measure-header-value" tabindex="-1">
               <span class="header-icon-container">
                  <span class="slds-icon_container">
                     <svg aria-hidden="true" class="header-icon-sprite slds-icon">
                        <use xlink:href="/images/sprite.analytics.svg#formula"></use>
                     </svg>
                     <span class="slds-assistive-text">
                        Formula
                     </span>
                  </span>
               </span>
               Pace  
            </span>
         </span>
      </div>
   </div>
   <div class="data-grid-resize-slider" style="position: absolute; width: 0px; height: 0px;">
   <input class="data-grid-resize-slider-input" aria-label="Pace Column Width: 115" type="range" tabindex="-1" min="35" max="1000" value="115">
</div>
</th>

1 Ответ

0 голосов
/ 02 октября 2019

Возможно, проблема связана с двойной нотацией [][], которую вы используете для элемента //span в конце. Я никогда раньше не видел такого типа синтаксиса XPath, и я всегда группировал запросы в один набор [].

. Вы можете использовать следующий XPath:

//th/div/div//span[contains(text(), 'Pace']

Это даст вам элемент span, содержащий текст «Pace».

Если вы просто хотите исправить свой существующий синтаксис XPath, это может также сработать:

//table[contains(@class,'data-grid-table data-grid-fixed-row-table')]//span[contains(text(),'Pace') and contains(@class,'lightning-table-cell-measure-header-value')]

Я комбинировалдва последних запроса в один с использованием оператора and.

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