如何使用Selenium / XPath检索以下HTML中的TD类?

时间:2011-01-03 15:06:56

标签: xpath selenium

我使用以下HTML和代码来检索<td>的类。

<td class='dataValueRead RV2' style=''>Constant</td>

**

driver.findElement(
  By.xpath("//td[contains(normalize-space(.),'Constant')]")
).getAttribute("class")

它给我一个空白值作为输出。我出错的任何线索?

2 个答案:

答案 0 :(得分:3)

只需使用

//td[contains(normalize-space(.),'Constant')]/@class

请注意以上表达式可能会选择多个节点。

要仅从这些中选择第N个节点,请使用此类XPath表达式(对于N = 1):

   (//td[contains(normalize-space(.),'Constant')]/@class)[1]

如果这些节点都没有选择任何节点,原因可能是

  1. //td[contains(normalize-space(.),'Constant')]未选择任何节点,因为没有td其字符串值包含字符串'Constant'。你确定你使用的是确切的大小写吗? XPath 区分大小写,'constant'不等于'Constant'

  2. //td[contains(normalize-space(.),'Constant')]未选择任何节点,因为存在默认命名空间。在这种情况下,您必须注册一个名称空间并在XPath表达式中使用其前缀(有很多问题和答案 - 阅读它们)://x:td[contains(normalize-space(.),'Constant')]

答案 1 :(得分:0)

为什么不直接使用XPath来访问属性(td/@class)?