Xpath для выбора кнопки из ячейки таблицы в зависимости от текста, содержащегося в определенной ячейке - PullRequest
0 голосов
/ 03 сентября 2018

В моем веб-приложении я пытаюсь выбрать кнопку в ячейке таблицы.

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

Скриншот ниже

enter image description here

<td>
    Allocated
    <button ng-show="row.entitlementId" id="btnShowDetails" class="btn btn-primary btn-sm" style="width: 110px; float:right;" ng-click="showAllocationMonetaryDetails(row.entitlementId, CisBusinessID);" title="Show Details">
         <span class="glyphicon glyphicon-search"></span>Show Details
    </button>
    <br>
    <div style="font-size: small; color: darkgreen" ng-show="row.manualEstablishCommandType >= 0">
         Adjustment
    </div>
    <div style="font-size: small; color: darkgreen" ng-show="row.manualReclaimCommandType >= 0">

    </div>
</td>

Я попытался использовать следующий xpath, чтобы найти кнопку Показать детали, но она не работает.

("//td[contains(.,'Allocated') and (contains(@id,'btnShowDetails'))]")

Кто-нибудь знает, как я могу выбрать кнопку Показать подробности?

Спасибо

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

В вашей ячейке td нет атрибута id, под кнопкой вы можете изменить свой xpath следующим образом:

//td[contains(.,'Allocated') and (contains(button/@id,'btnShowDetails'))]
0 голосов
/ 03 сентября 2018

@id='btnShowDetails' это не атрибут td, а атрибут потомка button

Попробуйте ниже XPath, чтобы выбрать необходимый элемент:

//td[starts-with(normalize-space(),'Allocated') and button[@id='btnShowDetails']]

или

//td[normalize-space(text())='Allocated' and button[@id='btnShowDetails']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...