java - Xpath 创建问题

标签 java selenium xpath

我正在使用 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

截图: enter image description here

关于java - Xpath 创建问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57352107/

相关文章:

java - 在 Travis CI 中运行 jar

java - 使用 Google API 时 Ant 无法构建

python - 使用 python/selenium 样式化类元素

python - 从 xpath 中的多个子节点中选择文本

java - 当 HTML 文件包含 mdash 时,如何使用 Xerces 避免 SAXParseException?

java - java中从linux设备char文件读取字节

java - 在 Java 程序中实现命令历史记录?

python - 使用 xvfb + PyCharm + vagrant 设置测试

java - 如何读取style=“显示: block; element value using x-path in selenium web driver?”

ruby - 如何使用 Nokogiri 获取 XML 文档的根元素名称?