3

我在阅读 XPath 时遇到问题。需要专家的帮助/建议。

我的部分 HTML 如下:

<div class = "input required_field">
    <div class="rounded_corner_error">
        <input id="FnameInput" class="ideField" type="text" value="" name="first_name>
           <div class ="help-tooltip">LOGIN BACK TO MAIN</div>
           <div class="error-tooltip">

我需要找到短信的 XPath (LOGIN BACK TO MAIN)

使用 Firebug 我找到了 XPath

("//html/body/div/div[5]/div/div/form/fieldset/div/div[2]/div[2]/div/div");

但是使用上面的 XPath 我只能读取 class =help-tooltip但我需要读取LOGIN BACK TO MAIN.

4

3 回答 3

3

尝试/text()在您拥有的 xpath 的末尾添加。

于 2013-06-02T09:17:27.967 回答
3

它看起来并不像您的 XPath 匹配您的 XHTML 元素。

您应该尝试一些更简单、更通用的方法,例如:

//div[@class="help-tooltip"]/text()

请参阅使用 xpath 选择 css 类

于 2013-06-02T09:25:08.917 回答
2

我会使用:

# Selecting the div element
//input[@id="FnameInput"]/following-sibling::div[@class="help-tooltip"]

# Selecting the text content of the div
//input[@id="FnameInput"]/following-sibling::div[@class="help-tooltip"]/text()

…因为语法上有效的 HTML 文档将具有唯一的id属性,因此这是一个非常强大的锚点。

请注意,后一个表达式将选择文本节点,而不是该节点的文本字符串内容;如果需要字符串,则需要提取文本节点的值。你如何做到这一点取决于你使用什么工具:

  • 在 JavaScript/DOM 中,这将是.nodeValue文本节点的属性。
  • 对于Nokogiri 来说,这就是.content方法。
  • …但我不知道您使用 XPath 的技术是什么。
于 2013-06-03T03:30:08.590 回答