当有多个具有相同属性和文本的元素时,如何识别Xpath?

时间:2016-05-05 14:01:17

标签: html xml selenium xpath webdriver

我需要点击“客户一”的链接。目前我正在使用

//div[contains(@class,'client-info') and contains(div/text(),'Customer')] 

使用Firepath,这将返回四个单独的元素(我附加了包含其中两个的代码),我认为这就是为什么Selenium Webdriver无法找到我想要点击的元素。

我需要单击此xpath的最后一个实例,但它似乎不可能更具体,因为它们具有相同的类和内部文本!

<div class="wg-client-row-mobile hidden-sm hidden-md hidden-lg">
<div class="row">
<div class="col-xs-11">
<span class="icon icon-user" ng-class="{'icon-user': !wgClientItemCtrl.client.isAnOrganization, 'icon-business': wgClientItemCtrl.client.isAnOrganization}"/>
<div class="client-info">
<div class="client-name not-long-text ng-binding">Customer One</div>
<!-- <div class="client-age not-long-text" ng-if="!wgClientItemCtrl.client.isAnOrganization">{{wgClientItemCtrl.client.gender}}, {{wgClientItemCtrl.client.calculatedAge | notAvailable}}</div> -->
<!-- ngIf: !wgClientItemCtrl.client.isAnOrganization -->
<div class="client-age not-long-text ng-binding ng-scope" ng-if="!wgClientItemCtrl.client.isAnOrganization">
<!-- end ngIf: !wgClientItemCtrl.client.isAnOrganization -->
<!-- ngIf: wgClientItemCtrl.client.isAnOrganization -->
<div class="client-age not-long-text ng-binding">
</div>
</div>
<div class="favorite-right-container">
</div>
</div>
<div class="wg-client-row-desktop hidden-xs hidden-is">
<div class="row content">
<div class="col-sm-4">
<div class="icon icon-user" ng-class="{'icon-user': !wgClientItemCtrl.client.isAnOrganization, 'icon-business': wgClientItemCtrl.client.isAnOrganization}"/>
<div class="client-info">
<div class="client-name not-long-text ng-binding">Customer One</div>
</div>

1 个答案:

答案 0 :(得分:6)

您可以使用last()来获取内部XPath匹配的最后一个实例:

(//div[contains(@class,'client-info') and contains(div/text(),'Customer')])[last()]