通过xpath获取具有给定文本值的input标记元素

时间:2012-03-17 05:44:11

标签: xpath

如何通过xpath选择文档中具有键入给定值的所有输入元素。

例如,如果我去谷歌并输入“hello world”,我如何获得所有输入“hello world”的输入标签?

使用下面的内容并没有得到回报,因为文本字段中的值实际上并不是文档的一部分。

document.evaluate("//input[text() = 'hello world']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue

应该很简单,但我很惊讶。

4 个答案:

答案 0 :(得分:15)

您的x路径表达式应搜索具有“hello world”属性的输入

这是因为这是值放入的位置,而不是元素的内部文本。

实际的html元素如下所示:

<input type='text' value='hello world' />

XPATH表达式应如下所示:

//input[@value = 'hello world']

答案 1 :(得分:2)

没有jQuery的替代方法是获取包含目标文本的input

//input[contains(@value, 'hello world')]

即使用户输入"hello world number 7"

,也会找到输入

答案 2 :(得分:0)

您没有指定语言,但要检索用户输入,它需要是某种类型的javascript。在jQuery中,您可以这样做:

$("input:contains('hello world')").val()

有关详情,请参阅contains() selectorval方法

上的jQuery文档

答案 3 :(得分:0)

这似乎也有效:

//input[@type='text'][@value='hello world']