utilizar una seleccionar que lista instalar español elemento con como aprender java selenium drop-down-menu selenium-webdriver

una - selenium con java



Cómo seleccionar/obtener la opción desplegable en Selenium 2 (8)

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

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");


Este es el código para seleccionar el valor del menú desplegable

El valor de selectlocator será el xpath o nombre del cuadro desplegable, y para optionLocator tendrá el valor que se seleccionará del cuadro desplegable.

public static boolean select(final String selectLocator, final String optionLocator) { try { element(selectLocator).clear(); element(selectLocator).sendKeys(Keys.PAGE_UP); for (int k = 0; k <= new Select(element(selectLocator)) .getOptions().size() - 1; k++) { combo1.add(element(selectLocator).getValue()); element(selectLocator).sendKeys(Keys.ARROW_DOWN); } if (combo1.contains(optionLocator)) { element(selectLocator).clear(); new Select(element(selectLocator)).selectByValue(optionLocator); combocheck = element(selectLocator).getValue(); combo = ""; return true; } else { element(selectLocator).clear(); combo = "The Value " + optionLocator + " Does Not Exist In The Combobox"; return false; } } catch (Exception e) { e.printStackTrace(); errorcontrol.add(e.getMessage()); return false; } } private static RenderedWebElement element(final String locator) { try { return (RenderedWebElement) drivers.findElement(by(locator)); } catch (Exception e) { errorcontrol.add(e.getMessage()); return (RenderedWebElement) drivers.findElement(by(locator)); } }

Gracias,

Rekha.


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.


Intenta usar:

selenium.select("id=items","label=engineering")

o

selenium.select("id=items","index=3")


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


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


puedes hacer esto:

public void selectDropDownValue(String ValueToSelect) { webelement findDropDownValue=driver.findElements(By.id("id1")) //this will find that dropdown wait.until(ExpectedConditions.visibilityOf(findDropDownValue)); // wait till that dropdown appear super.highlightElement(findDropDownValue); // highlight that dropdown new Select(findDropDownValue).selectByValue(ValueToSelect); //select that option which u had passed as argument }


driver.findElement(By.id("id_dropdown_menu")).click(); driver.findElement(By.xpath("xpath_from_seleniumIDE")).click();

buena suerte