2009-09-25 49 views
8

Estoy tratando de seleccionar un valor en un elemento seleccionado. Estoy usando Selenium RC (Java) para ejecutar los casos de prueba. Yo entiendo que el código para seleccionar un valor viene dado por:Usando Selenium para seleccionar una opción en una selección con optgroup

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

Soy incapaz de seleccionar el valor deseado con el código de seguridad. Creo que podría ser algo relacionado con optgroup en el código fuente de selección. No recibo ninguna excepción, el comando se ejecuta correctamente pero al mirar la página no se selecciona el valor requerido. Además, no puedo usar ids (en lugar de valor) porque no hay ninguno. Aquí está el código fuente del selector:

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

¿Hay alguna manera de seleccionar el valor requerido usando Selenium?

Sería fantástico si pudiéramos evitar los valores de las opciones (como "18", "34", etc.) porque estos números cambian más adelante a medida que cambian los valores. Por ejemplo, "VALOR REQUERIDO" tiene un valor de -18, pero si tuviera que eliminar este elemento y volverlo a agregar, su valor sería diferente. Básicamente, este cuadro desplegable es dinámico.

Respuesta

13

El valor de la opción requerida en su ejemplo es en realidad '18'. Intente lo siguiente:

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

Hola Dave, Gracias por responder. ¿Pero crees que hay otra manera además de usar 18? El contenido del menú desplegable cambia en mi aplicación y también lo hacen los números. En otras palabras, ahora se muestra como pero puede ser cualquier número. Incluso si ejecuto mis pruebas varias veces, estos números cambian. ¿Tiene alguna otra idea sobre qué se puede hacer? Mientras tanto, actualizaré este comentario en mi pregunta también. Gracias, Mugen – Mugen

+1

Compruebe mi respuesta nuevamente. Estoy sugiriendo cambiar 'value =' a 'label ='. Esto le permite seleccionar una opción basada en su etiqueta en lugar de su valor. –

+1

Gracias por responder. ¡Funciona perfectamente con la etiqueta! – Mugen

Cuestiones relacionadas