2012-03-17 11 views
6

Come posso selezionare, tramite xpath, tutti gli elementi di input in un documento con un valore specificato digitato al loro interno.Ottieni l'elemento tag di input con un determinato valore di testo tramite xpath

Per esempio, se vado su Google e digito "ciao mondo", come faccio a digitare tutti i tag di input con "ciao mondo"?

Giocare con cose come quelle di seguito non è stato ripagato, poiché il valore nel campo di testo non fa realmente parte del documento.

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

Dovrebbe essere piuttosto semplice, ma sono sorprendentemente bloccato.

+0

Sei in realtà cercando di afferrare quei valori da una pagina dopo il caricamento e un utente fa alcune azioni, o hai già il documento XML da qualche parte e vuoi cercarlo? –

risposta

11

tua espressione x-percorso dovrebbe ricerca di input che hanno il valore di attributo con 'Ciao mondo'

Questo è perché è lì che il valore viene messo in, non il testo interna dell'elemento.

l'elemento HTML effettivo sarà simile:

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

l'espressione XPath dovrebbe essere simile:

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

Non hai specificato la lingua, ma per recuperare l'input dell'utente avrà bisogno di essere javascript di qualche tipo In jQuery, si può fare questo:

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

Per i dettagli, consultare la documentazione di jQuery sul contains() selector e il metodo di val

2

Un'alternativa senza jQuery per ottenere l'ingresso che contiene il testo di arrivo è // ingresso [contiene (@valore, 'ciao mondo')]. Ciò avrebbe trovato l'ingresso, anche se l'utente digita "ciao mondo numero 7"

0

Questo sembra anche funzionare:

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