Annunciare la mia analisi di una pagina web che include una struttura come questa:XPath: trovare cella di una tabella con la stessa posizione nella riga differente
<tr>
<td>Label 1</td>
<td>Label 2</td>
<td>Label 3</td>
<td>Something else</td>
<\tr>
<tr>
<td>Item 1</td>
<td>Item 2</td>
<td>Item 3</td>
<\tr>
Che cosa devo fare è selezionare una voce basati su di esso di un'etichetta, quindi il mio pensiero è se l'etichetta è nel terzo tag nella sua riga, posso afferrare il terzo tag nella riga successiva per trovare l'oggetto. Non riesco a capire un modo per usare la funzione position() in questo modo, e forse xpath (1.0) non è in grado di gestire questo tipo di filtro.
Il mio tentativo migliore finora è: //td[ancestor::tr[1]/preceding-sibling::tr[1]/td[position()]]
. Speravo che la funzione position() prendesse la posizione di <td>
all'inizio di xpath, poiché il resto di xpath è un filtro per quel nodo.
È quello che sto cercando di fare anche possibile?
Quale libreria/linguaggio di programmazione stai usando per eseguire gli XPath? Non penso che questo possa essere fatto in puro XPath 1.0, avresti bisogno di memorizzare 'position()' dal contesto esterno in una variabile e poi usare quella variabile all'interno del predicato, e il modo in cui imposti le variabili varia dallo strumento a strumento. –
Utilizzo un web driver al selenio. – eldon111
Quali associazioni di lingua selenio-webdriver usi? È più facile usare vari metodi di selenio piuttosto che una pura soluzione xpath. –