如何使用带有Java的Selenium WebDriver从性别下拉列表中选择一个项目(例如男性,女性)?
我试过这个
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();
}
我的上述代码无效。
答案 0 :(得分:42)
使用 -
new Select(driver.findElement(By.id("gender"))).selectByVisibleText("Germany");
当然,您需要import org.openqa.selenium.support.ui.Select;
答案 1 :(得分:21)
将WebElement包装到Select Object中,如下所示
Select dropdown = new Select(driver.findElement(By.id("identifier")));
完成此操作后,您可以通过3种方式选择所需的值。考虑像这样的HTML文件
<html>
<body>
<select id = "designation">
<option value = "MD">MD</option>
<option value = "prog"> Programmer </option>
<option value = "CEO"> CEO </option>
</option>
</select>
<body>
</html>
现在确定下拉列表
Select dropdown = new Select(driver.findElement(By.id("designation")));
要选择其选项,请说“程序员”,您可以
dropdown.selectByVisibleText("Programmer ");
或
dropdown.selectByIndex(1);
或
dropdown.selectByValue("prog");
快乐编码:)
答案 2 :(得分:5)
你应该像那个“选项”一样提到的标记名,如果有空格的文字我们可以使用这个方法它应该有效。
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();
}
答案 3 :(得分:3)
Google“select item selenium webdriver”将第一个结果显示为How do I set an option as selected using Selenium WebDriver (selenium 2.0) client in ruby。这不是Java,但你应该能够翻译它而不需要太多工作。 https://sqa.stackexchange.com/questions/1355/what-is-the-correct-way-to-select-an-option-using-seleniums-python-webdriver位于前5位,同样不是Java,但API非常相似。
答案 4 :(得分:3)
WebElement selectgender = driver.findElement(By.id("gender"));
selectgender.sendKeys("Male");
答案 5 :(得分:3)
您可以使用Maitreya发布的“Select”类selenium WebDriver。对不起,但我有点困惑,从下拉列表中选择性别为什么要将字符串与“德国”进行比较。这是代码片段,
Select gender = new Select(driver.findElement(By.id("gender")));
gender.selectByVisibleText("Male/Female");
添加上述代码后导入import org.openqa.selenium.support.ui.Select;
。
现在选择性别(男/女)。
答案 6 :(得分:1)
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();
}
答案 7 :(得分:1)
要查找特定的下拉框元素:
Select gender = new Select(driver.findElement(By.id("gender")));
获取下拉框中包含的所有元素的列表:
for(int j=1;j<3;j++)
System.out.println(gender.getOptions().get(j).getText());
通过单击时显示的可见文本选择它:
gender.selectByVisibleText("Male");
按索引选择(从0开始):
gender.selectByIndex(1);
答案 8 :(得分:0)
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");
}
}
我正在使用GOOGLE LOGIN PAGE来测试选择选项。上面的例子是从下拉列表中查找并选择语言“菲律宾语”。我相信这会解决问题。