Domanda
Le scrivo il test selenio.
Ho un'etichetta lì "Assegna Designer" e la casella di selezione seguito subito dopo l'etichetta. Unfortunetely, casella di selezione ha l'id dinamica e non posso interrogare è da id o qualsiasi altro suo attributo.
Posso costruire la query XPath che restituisce "Primo tag select dopo il testo 'Assegnare Designer'"?
PS. Selenio supporta solo XPath 1.0
Soluzione
Questo sarebbe qualcosa come:
//label[text() = 'Assign Designer']/following-sibling::select[1]
Si noti che:
- Il // abbreviata è molto inefficiente, perché provoca una scansione a livello di documento. Se si può essere più preciso circa la posizione del marchio, vi consiglio di farlo. Se il documento è di piccole dimensioni, tuttavia, questo non sarà un problema.
- Dal momento che non so molto di selenio, ho usato "etichetta". Se non è un
<label>
, è necessario utilizzare il nome dell'elemento reale, naturalmente. ; -) - essere sicuri di includere un predicato di posizione (
[1]
, in questo caso) ogni volta che si utilizza un asse come "following-sibling
". E 'facilmente dimenticato e se lo è, le espressioni può produrre risultati imprevisti.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow