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

sec*_*oot 9 xpath

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

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

玩下面的东西没有得到回报,因为文本字段中的值实际上不是文档的一部分.

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

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

Ove*_*d D 16

你的x-path表达式应该搜索value属性为'hello world'的输入

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

实际的html元素看起来像:

<input type='text' value='hello world' />
Run Code Online (Sandbox Code Playgroud)

XPATH表达式应如下所示:

//input[@value = 'hello world']
Run Code Online (Sandbox Code Playgroud)

  • 如果值发生变化,这似乎不起作用。换句话说,它选择默认值(`Element#defaultValue`)而不是实时值。 (2认同)