我正在使用 Selenium WebDriver 和 eclipse (2019-06) 来做一些测试用例。我将 xpath 与我的 webDriver 一起使用,它工作正常。但是我试图在我的 DOM 中获取一些信息,但是我找不到正确的 xpath 来捕捉我想要的东西。
我正在创建一些断言来比较找到的值与我页面中的 xpath 以及我在 excel 文件中获得的信息。 我的代码是 html 表中的结构,我需要捕获的信息与其他信息位于同一行,我不知道如何只捕获一个。
我的表的简化结构是:
<table>
<tr>
<td class="fp1 gray">
<label>Portfolio</label>
</td>
<td class="data">
<b class="xh-highlight">numPortfolio</b>
</td>
<td class="fp1 gray">
<label>Instrument</label>
</td>
<td class="data">
<b class="xh-highlight">numInstrument</b>
</td>
</tr>
</table>
我用来获取投资组合值“numPortfolio”的 xpath 是:
//tr[td[@class='fp1 gray']='Portfolio']/td[@class='data']/b[1]
我正在搜索类等于“数据”的“b”的值,之前的“td”包含类等于“fp1 灰色”的“投资组合”。
对于工具“numInstrument”的值:
//tr[td[@class='fp1 gray']='Instrument']/td[@class='data']/b[1]
但是这种 xpath 总是返回“numPortfolio”和“labelInstrument”,我不知道如何指定我只想要紧随其后的“b”的值,而不是每个“b”在'tr'中。
谢谢你的帮助
最佳答案
这是您可以使用的 xpath。
//td[@class='fp1 gray' and label[normalize-space(.)='Portfolio']]/following-sibling::td[1]/b
//td[@class='fp1 gray' and label[normalize-space(.)='Instrument']]/following-sibling::td[1]/b
关于java - Xpath 创建问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57352107/