java español - Cómo seleccionar / obtener la opción desplegable en Selenium 2




4 Answers

Eche un vistazo a la sección sobre cómo rellenar formularios usando webdriver en la documentación de selenio y javadoc para la clase Select .

Para seleccionar una opción basada en la etiqueta:

Select select = new Select(driver.findElement(By.xpath("//path_to_drop_down")));
select.deselectAll();
select.selectByVisibleText("Value1");

Para obtener el primer valor seleccionado:

WebElement option = select.getFirstSelectedOption()
que aprender

Estoy convirtiendo mi código de selenio 1 en selenio 2 y no encuentro ninguna manera fácil de seleccionar una etiqueta en un menú desplegable u obtener el valor seleccionado de un menú desplegable. ¿Sabes cómo hacer eso en Selenium 2?

Aquí hay dos afirmaciones que funcionan en Selenium 1 pero no en 2:

browser.select("//path_to_drop_down", "Value1");
browser.getSelectedValue("//path_to_drop_down");



en ruby ​​para usarlo constantemente, agrega lo siguiente:

module Selenium
  module WebDriver
    class Element
      def select(value)
        self.find_elements(:tag_name => "option").find do |option|
          if option.text == value
            option.click
              return
           end
       end
    end
  end
end

y podrás seleccionar valor:

browser.find_element(:xpath, ".//xpath").select("Value")



Una opción similar a la publicada anteriormente por janderson sería simplemente utilizar el método .GetAttribute en selenio 2. Al usar esto, puede tomar cualquier elemento que tenga un valor o etiqueta específica que esté buscando. Esto se puede usar para determinar si un elemento tiene una etiqueta, un estilo, un valor, etc. Una forma común de hacerlo es recorriendo los elementos del menú desplegable hasta que encuentre el que desea y selecciónelo. Cª#

int items = driver.FindElement(By.XPath("//path_to_drop_Down")).Count(); 
for(int i = 1; i <= items; i++)
{
    string value = driver.FindElement(By.XPath("//path_to_drop_Down/option["+i+"]")).GetAttribute("Value1");
    if(value.Conatains("Label_I_am_Looking_for"))
    {
        driver.FindElement(By.XPath("//path_to_drop_Down/option["+i+"]")).Click(); 
        //Clicked on the index of the that has your label / value
    }
}



Este método devolverá el valor seleccionado para el menú desplegable,

public static String getSelected_visibleText(WebDriver driver, String elementType, String value)
  {
    WebElement element = Webelement_Finder.webElement_Finder(driver, elementType, value);
   Select Selector = new Select(element);
    Selector.getFirstSelectedOption();
    String textval=Selector.getFirstSelectedOption().getText();
    return textval;
  }

mientras tanto

String textval = Selector.getFirstSelectedOption ();

element.getText ();

Devolverá todos los elementos en el menú desplegable.




Related

java selenium drop-down-menu selenium-webdriver