首页 > 解决方案 > Xpath 创建问题

问题描述

我正在使用 Selenium WebDriver 和 eclipse (2019-06) 来做一些测试用例。我将 xpath 与运行正常的 webDriver 一起使用。但是我尝试在我的 DOM 中获取一些信息,但我找不到正确的 xpath 来捕捉我想要的东西。

我正在创建一些断言来比较值 find 与我页面中的 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 gray”。

对于工具“numInstrument”的值:

//tr[td[@class='fp1 gray']='Instrument']/td[@class='data']/b[1]

但是这种xpath一直返回我“numPortfolio”和“labelInstrument”,我不知道如何指定我只想要'b'的值,而不是'tr'中的每个'b' '。

谢谢你的帮助

标签: javaseleniumxpath

解决方案


这是您可以使用的 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

截屏: 在此处输入图像描述


推荐阅读