我使用以下HTML和代码来检索<td>
的类。
<td class='dataValueRead RV2' style=''>Constant</td>
**
driver.findElement(
By.xpath("//td[contains(normalize-space(.),'Constant')]")
).getAttribute("class")
它给我一个空白值作为输出。我出错的任何线索?
答案 0 :(得分:3)
只需使用:
//td[contains(normalize-space(.),'Constant')]/@class
请注意以上表达式可能会选择多个节点。
要仅从这些中选择第N个节点,请使用此类XPath表达式(对于N = 1):
(//td[contains(normalize-space(.),'Constant')]/@class)[1]
如果这些节点都没有选择任何节点,原因可能是:
//td[contains(normalize-space(.),'Constant')]
未选择任何节点,因为没有td
其字符串值包含字符串'Constant'
。你确定你使用的是确切的大小写吗? XPath 区分大小写,'constant'
不等于'Constant'
。
//td[contains(normalize-space(.),'Constant')]
未选择任何节点,因为存在默认命名空间。在这种情况下,您必须注册一个名称空间并在XPath表达式中使用其前缀(有很多问题和答案 - 阅读它们)://x:td[contains(normalize-space(.),'Constant')]
答案 1 :(得分:0)
为什么不直接使用XPath来访问属性(td/@class
)?