我正在尝试找到表的行,因为我正在列中寻找一个值。具有行值后,我可以在行中访问其他列。我已经知道该怎么做,但这对我来说并不满意。我正在寻找建议。
我有一排看起来像这样的行:
<table data-qa="reportTable">
<tr class="even">
<td style="">Testing</td>
<td>2019-11-21 00:00:00.0</td>
<td>2019-11-24 00:00:00.0</td>
<td>
<a href="Some URL" class="followLink">1</a>
</td>
<td>$1500.00</td>
</tr>
</table>
我想获得
<a></a>
,url。
我尝试了以下内容:
//table[@data-qa="reportTable"]//tr[td[1]="Testing"]//a[@class="followLink"]
- 我选择表。
- 然后查找该行,索引由步骤3定义。
- 在列中查找内容,并获取索引。
- 寻找URL。
假设我要寻找的价值总是在1上。在1上找到值后,然后寻找行,然后获得"一些URL"最后我需要URL。
我只想知道这样做是否有更好的主意,因为它看起来很混乱,因此对任何想法都表示赞赏。我已经看了其他解决方案,但看起来都一样。
谢谢!
您可以尝试此xpath
以获取所需的内容,而不论索引:
//*[@data-qa='reportTable']//tr[td[.='Testing']]//a[@class='followLink']
此xpath表达式:
//table[@data-qa="reportTable"]//td[1][text()="Testing"]/following-sibling::td/a/@href
选择
一些URL
不管索引如何,您都可以获取URL。
//table[@data-qa="reportTable"]/tr[td[text()="Testing"]]/td/a[@class="followLink"]
,或者如果您的测试总是在您之前进行,则可以使用此。
//table[@data-qa="reportTable"]/tr/td[preceding-sibling::td[text()="Testing"]]/a[@class="followLink"]
您也可以尝试以下XPath。
//table[@data-qa='reportTable']//td[text()='Testing']/parent::tr//td/a/@href
在这里,我试图找到表格,查找具有文本"测试"的列,为此列获取行,然后在同一行的其他列中找到" A"以获取HREF。<<<<<<<<<<
希望您发现它有用。