java - drop - selenium webdriver firefox
¿Cómo seleccionar un ítem de una lista desplegable usando Selenium WebDriver con java? (9)
¿Cómo puedo seleccionar un elemento de una lista desplegable como género (por ejemplo, hombre, mujer) usando Selenium WebDriver con Java?
Lo he intentado
WebElement select = driver.findElement(By.id("gender"));
List<WebElement> options = select.findElements(By.tagName("Male"));
for (WebElement option : options) {
if("Germany".equals(option.getText()))
option.click();
}
Mi código anterior no funcionó.
Google "select item selenium webdriver" aparece ¿Cómo configuro una opción como seleccionada usando el cliente Selenium WebDriver (selenium 2.0) en ruby como primer resultado? Esto no es Java, pero debería poder traducirlo sin demasiado trabajo. https://sqa.stackexchange.com/questions/1355/what-is-the-correct-way-to-select-an-option-using-seleniums-python-webdriver encuentra en el top 5, de nuevo no es Java sino el API es muy similar.
Para encontrar ese elemento desplegable en particular
Select gender = new Select(driver.findElement(By.id("gender")));
Para obtener la lista de todos los elementos en el cuadro desplegable
for(int j=1;j<3;j++)
System.out.println(gender.getOptions().get(j).getText());
Para seleccionarlo a través de optoion de texto visible
gender.selectByVisibleText("Male");
Para seleccionarlo por índice
gender.selectByIndex(1);
Puede utilizar la clase ''Select'' de WebDriver de selenio publicada por Maitreya. Lo siento, pero estoy un poco confundido acerca de, para seleccionar género de menú desplegable por qué para comparar cadena con "Alemania". Aquí está el fragmento de código,
Select gender = new Select(driver.findElement(By.id("gender")));
gender.selectByVisibleText("Male/Female");
Importar import org.openqa.selenium.support.ui.Select;
después de agregar el código anterior. Ahora se seleccionará el género que haya dado (Hombre / Mujer).
Simplemente envuelva su WebElement en Select Object como se muestra a continuación
Select dropdown = new Select(driver.findElement(By.id("identifier")));
Una vez hecho esto, puede seleccionar el valor requerido de 3 maneras. Considere un archivo HTML como este
<html>
<body>
<select id = "designation">
<option value = "MD">MD</option>
<option value = "prog"> Programmer </option>
<option value = "CEO"> CEO </option>
</option>
</select>
<body>
</html>
Ahora para identificar el menú desplegable
Select dropdown = new Select(driver.findElement(By.id("designation")));
Para seleccionar su opción, diga ''Programador'' que puede hacer
dropdown.selectByVisibleText("Programmer ");
o
dropdown.selectByIndex(1);
o
dropdown.selectByValue("prog");
Happy Coding :)
Tagname debería mencionarse como esa "opción", si el texto con espacio podemos usar este método debería funcionar.
WebElement select = driver.findElement(By.id("gender"));
List<WebElement> options = select.findElements(By.tagName("option"));
for (WebElement option : options) {
if("Germany".equals(option.getText().trim()))
option.click();
}
Utilizar -
new Select(driver.findElement(By.id("gender"))).selectByVisibleText("Germany");
Por supuesto, debe import org.openqa.selenium.support.ui.Select;
WebElement select = driver.findElement(By.id("gender"));
List<WebElement> options = select.findElements(By.tagName("option"));
for (WebElement option : options) {
if("Germany".equals(option.getText()))
option.click();
}
WebElement selectgender = driver.findElement(By.id("gender"));
selectgender.sendKeys("Male");
public class checkBoxSel {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
EventFiringWebDriver dr = null ;
dr = new EventFiringWebDriver(driver);
dr.get("http://www.google.co.in/");
dr.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
dr.findElement(By.linkText("Gmail")).click() ;
Select sel = new Select(driver.findElement(By.tagName("select")));
sel.selectByValue("fil");
}
}
Estoy usando GOOGLE LOGIN PAGE para probar la opción de selección. El ejemplo anterior fue encontrar y seleccionar el idioma "filipino" de la lista desplegable. Estoy seguro de que esto resolverá el problema.