Usando XPath: trova il collegamento nella cella 3 righe in alto
Domanda
Ho più righe in una tabella, in una delle quali è presente un collegamento su cui vorrei fare clic automaticamente. Per il mio punto di partenza ho l'ultima istanza in cui una riga contiene il testo & Quot; Domanda di prova? & Quot ;:
ID: 1416
Modifica / Approva Ignorare E-mail Nome: Nome mittente
Apri N / A Posizione: Posizione del mittente
Membro: No
Testo della domanda: Domanda di prova? Testo della risposta 1:
Testo di risposta 2:
ID: 1417
Modifica / Approva Ignorare E-mail Nome: Nome mittente
Apri N / A Posizione: Posizione del mittente
Membro: No
Testo della domanda: Domanda di prova? Testo della risposta 1:
Testo di risposta 2:
Quindi, // tr [td = 'Test Question?'] [last ()] sarebbe qualcosa come " Testo della domanda: Test della domanda? "
Ad ogni modo, a tre file da quella c'è una fila con un mucchio di collegamenti. Vorrei l'xpath al link nella prima cella.
Ora ho provato a usare position (), ma cose come // tr [position () = (// tr [td = 'Test Question?'] [last ()] [position ()]) - 3] semplicemente non è il modo giusto per farlo e non riesco a trovare buoni esempi.
Grazie
Dave
Soluzione
Sarà a dir poco un xpath piuttosto nodoso, ma stai guardando assi che iniziano con ancestor::tr
e poi fratello precedente. Scorri fino a <tr>
, poi su tre (dovrai rifare position()
qui penso) e poi giù in modo normale da lì al tuo obiettivo.
Modifica: più facile di quanto pensassi, i conteggi tra fratelli precedenti al contrario.
./ancestor::tr/preceding-sibling::tr[3]/td[1]/a