【问题标题】:Getting text following a label in XPath在 XPath 中获取标签后面的文本
【发布时间】:2017-01-09 19:09:10
【问题描述】:

我正在尝试使用 Selenium 进行一些测试,但遇到了一些问题。假设我有以下内容:

<div class="itemize-row">                                              
  <p class="subText">
    <span class="item-label">Card Color:</span> Mandarin
    <span class="item-label">Colored Mug:</span> Red
  </p>
</div>  

谁能告诉我如何使用 XPath 或 CSS 检索“红色”数据?

【问题讨论】:

  • 你使用什么 selenium 语言绑定?
  • @alecxe,谢谢,我正在使用 Java
  • @khanam - 您想检索“红色”作为数据还是要检索 span 元素中的数据?
  • @OarpitO,我想检索彩色杯子的值,即“红色”,请做必要的事情。

标签: java css selenium xpath selenium-webdriver


【解决方案1】:

这个 XPath,

//span[@class='item-label' and .='Colored Mug:']/following-sibling::text()[1]

将按要求返回"Red"


一般来说,是的,但是在 Selenium 中,你不能指向文本 节点。 XPath 表达式必须指向“元素”。 – 亚历克斯

好的,考虑到 Selenium 的限制,这个 XPath,

substring-after(//span[@class='item-label' and .='Colored Mug:']/.., 'Colored Mug:')

利用您的目标位于标签父级的字符串值末尾这一事实,也将根据请求返回"Red"

【讨论】:

  • 一般来说可以,但是在 Selenium 中,不能指向文本节点。 XPath 表达式必须指向“元素”。
  • 这会在尝试从 selenium 中使用它时出现“无法定位元素”的错误。
  • @alecxe:呃。假设 Selenium 可以处理字符串值,我添加了另一个 XPath 供 OP 使用,它利用了目标位于标签父级字符串值末尾的事实。
猜你喜欢
  • 2014-01-14
  • 1970-01-01
  • 2019-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-16
  • 2017-09-07
  • 1970-01-01
相关资源
最近更新 更多