在输入后在div中查找文本的XPath

时间:2013-06-02 09:11:55

标签: html xpath

我在阅读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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

看起来你的XPath与你的XHTML元素不匹配。

你应该尝试更简单和更通用的东西,例如:

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

请参阅Selecting a css class with xpath

答案 2 :(得分:1)

我会用:

# 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的技术是什么。