2012-08-13 21 views
23

Soy novato en selenio seleccionados y estoy atascado aquí:Como llegar opción utilizando selenio WebDriver con Java

Quiero obtener la etiqueta seleccionada o el valor de una caída abajo usando selenio WebDriver y luego imprime en consola.

Puedo seleccionar cualquier valor del menú desplegable pero no puedo recuperar el valor seleccionado e imprimirlo.

Select select = new 
Select(driver.findElement(By.id("MyDropDown"))).selectByVisibleText(data[11].substring(1 , data[11].length()-1)); 
WebElement option = select.getFirstSelectedOption(); 

Pero todos mis esfuerzos van en vano Cualquier ayuda se agradece. Gracias de antemano :)

Respuesta

40

Usted debe ser capaz de obtener el texto utilizando getText() (para el elemento de opción que consiguió usando getFirstSelectedOption()):

Select select = new Select(driver.findElement(By.xpath("//select"))); 
WebElement option = select.getFirstSelectedOption(); 
String defaultItem = option.getText(); 
System.out.println(defaultItem); 
+5

Yo añadiría para futuros lectores que necesitamos para importar org.openqa.selenium.support.ui.Seleccione trabajar en Seleccionar elementos. – Michal

+0

Sí Michal, tienes razón. –

16

Completando la respuesta:

String selectedOption = new Select(driver.findElement(By.xpath("Type the xpath of the drop-down element"))).getFirstSelectedOption().getText(); 

Assert.assertEquals("Please select any option...", selectedOption); 
2

En Selenio Python es:

from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support.ui import Select 

def get_selected_value_from_drop_down(self): 
    try: 
     select = Select(WebDriverWait(self.driver, 20).until(EC.element_to_be_clickable((By.ID, 'data_configuration_edit_data_object_tab_details_lb_use_for_match')))) 
     return select.first_selected_option.get_attribute("value") 
    except NoSuchElementException, e: 
     print "Element not found " 
     print e 
0
var option = driver.FindElement(By.Id("employmentType")); 
     var selectElement = new SelectElement(option); 
     Task.Delay(3000).Wait(); 
     selectElement.SelectByIndex(2); 
     Console.Read(); 
+1

Si bien este fragmento de código puede resolver la pregunta, [incluyendo una explicación] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) realmente ayuda a mejorar la calidad de su publicación. Recuerde que usted está respondiendo la pregunta a los lectores en el futuro, y es posible que esas personas no sepan los motivos de su sugerencia de código. – DimaSan

1

En la siguiente opción:

WebElement option = select.getFirstSelectedOption(); 
option.getText(); 

Si a partir del método getText() se obtiene un espacio en blanco, se puede obtener la cadena de valor de la opción de usar el método getAttribute:

WebElement option = select.getFirstSelectedOption(); 
option.getAttribute("value"); 
Cuestiones relacionadas