Получить элемент тега ввода с заданным значением текста через xpath - PullRequest
7 голосов
/ 17 марта 2012

Как я могу выбрать через xpath все элементы ввода в документе, для которых введено заданное значение.

Например, если я захожу в Google и набираю "hello world", как сделатьЯ получаю все входные теги, в которые введен «привет мир»?

Игра с вещами, подобными приведенным ниже, не окупилась, поскольку значение в текстовом поле на самом деле не является частью документа.

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

Должно быть довольно просто, но я удивительно застрял.

Ответы [ 4 ]

15 голосов
/ 17 марта 2012

Ваше выражение x-path должно искать входы, которые имеют атрибут value с 'hello world'

Это потому, что туда помещается значение, а не внутренний текст элемента.

Фактический HTML-элемент будет выглядеть так:

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

Выражение XPATH должно выглядеть следующим образом:

//input[@value = 'hello world']
2 голосов
/ 03 мая 2015

Альтернатива без jQuery для получения input, который содержит целевой текст:

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

Это найдет ввод, даже если пользователь введет "hello world number 7"

0 голосов
/ 15 июня 2017

Это также, кажется, работает:

//input[@type='text'][@value='hello world']
0 голосов
/ 17 марта 2012

Вы не указали язык, но для извлечения пользовательского ввода он должен быть каким-то javascript. В jQuery вы можете сделать это:

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

Подробнее см. В документах jQuery о селекторе contains() и методе val

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...