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

È stato utile?

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
scroll top