2014-08-27 38 views
0

中的鏈接我有一個表,如下所示:XPath來定位表

<tr class="ng-scope" ng-repeat="client in clients"> 
<td class="text-left ng-binding">Apu Nahasapeemapetilon</td> 
<td class="text-left ng-binding">AN</td> 
<td class="text-left"> 
<span class="ng-scope" ng-repeat="group in client.SecurityGroups"> 
<a class="label label-info ng-binding" href="#/SecurityGroup/MemberClients/a1cbf118-2c40-4ae7-a9f8-136bec945849/Assistants"> Assistants </a> 
<span class="ng-scope" ng-repeat="group in client.SecurityGroups"> 
<a class="label label-info ng-binding" href="#/SecurityGroup/MemberClients/e4bd1580-3997-4f3d-a975-189e1fdccb4c/Managers"> Managers </a> 

我試圖找到在第三單元中的鏈接。在這個單元格中可以有多個鏈接。理想情況下,我想通過定位單元格1或2來識別該行。

因此,給出上述表格數據的想法是:查找具有客戶端代碼AN(單元格2)的行,然後在該行上找到鏈接'Assistants'行(在單元格3中)。

我有我的項目類似的表和以下XPpath會做什麼IM瞄準了該表:

//tr[.//td='AN'] // a[.='Managers'] 

,但它似乎沒有在上面的表格工作...

如果我做的:

//tr[.//td='AN'] // a 

這將突出在小區內的所有鏈接(即結束助理鏈接和經理),該行方含「一個」,但我只是不能似乎得到它的定位在個別鏈接。

+0

您的XPath幾乎是正確的,但在HTML中,'Managers'和'Assistants'周圍有空格。你可以使用'//tr[.//td='AN'] // a [。='Managers']'(注意多餘的空格)或者可能''//tr[.//td='AN'] // a [包含(。,'Managers')]'。 – matt 2014-08-27 16:35:56

回答

1

嘗試下面的XPath

//tr/td[.='AN']/following-sibling::td[1]//a[contains(@href, 'Assistants')] 

中的XPath查找一個tr具有 'AN' 的值的孩子td。然後看看第一個跟隨兄弟td,然後查找後裔,其href值包含'助理'

+0

謝謝 - 需要在XPath開始時添加一個額外的'/',但否則它會起作用。我對Xpath很陌生,你介意解釋查詢的工作原理嗎? – AlmightyJoygasm 2014-08-27 10:20:11

+0

或即使有CSS等價物? – AlmightyJoygasm 2014-08-27 10:21:01

+0

已編輯我的文章 – 2014-08-27 10:24:48