2009-09-25 5 views
8

Sto provando a selezionare un valore in un elemento select. Uso Selenium RC (Java) per eseguire i test case. Comprendo che il codice per la selezione di un valore è dato da:Utilizzo del selenio per selezionare un'opzione su una selezione con optgroup

selenium.select("locator", "value=REQUIRED VALUE") 

Non riesco a selezionare il valore desiderato con il codice precedente. Penso che potrebbe essere qualcosa a che fare con optgroup nel codice sorgente selezionato. Non ottengo eccezioni, il comando viene eseguito correttamente ma guardando la pagina il valore richiesto non è selezionato. Inoltre, non posso usare id (invece del valore) perché non ci sono. Ecco il codice sorgente del selettore:

<select> 
    <optgroup label="Group1"> 
     <option value="13">some value1</option> 
     <option value="25">some value2</option> 
    </optgroup> 
    <optgroup label="Group2"> 
     <option value="18">REQUIRED VALUE</option> 
     <option value="34">some value3</option> 
     ... 
     ... 
    </optgroup> 
</select> 

C'è un modo per selezionare il valore richiesto utilizzando Selenium?

Sarebbe bello se potessimo evitare i valori delle opzioni (come "18", "34" ecc.) Perché questi numeri cambiano in seguito al variare dei valori. Ad esempio, "REQUIRED VALUE" ha un valore -18 ma se dovessi eliminare questo elemento e aggiungerlo nuovamente il suo valore sarebbe diverso. Fondamentalmente questa casella a discesa è dinamica.

risposta

13

Il valore per l'opzione richiesta nell'esempio è in realtà '18'. Prova il seguente:

selenium.select("locator", "label=REQUIRED VALUE") 
+0

Ciao Dave, Grazie per la risposta. Ma pensi che ci sia un altro modo oltre all'utilizzo del 18? I contenuti del menu a tendina cambiano nella mia applicazione e così fanno i numeri. In altre parole, in questo momento sta mostrando come ma può essere qualsiasi numero. Anche se eseguo i miei test più volte questi numeri cambiano. Avete altre idee su cosa si può fare? Nel frattempo aggiornerò questo commento anche sulla mia domanda. Grazie, Mugen – Mugen

+1

Controlla di nuovo la mia risposta. Sto suggerendo di cambiare "value =" in "label =". Ciò ti consente di selezionare un'opzione in base alla sua etichetta anziché al suo valore. –

+1

Grazie per la risposta. Funziona perfettamente con l'etichetta! – Mugen