如何使用Selenium WebDriver与java从下拉列表中select一个项目?

如何使用Selenium WebDriver与Java从性别(如男性,女性)下拉列表中select一个项目?

我已经试过了

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

我上面的代码没有工作。

使用 –

 new Select(driver.findElement(By.id("gender"))).selectByVisibleText("Germany"); 

当然,你需要import org.openqa.selenium.support.ui.Select;

只需将您的WebElement包装到Select Object中,如下所示

 Select dropdown = new Select(driver.findElement(By.id("identifier"))); 

一旦完成,您可以通过3种方式select所需的值。 考虑一个像这样的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"))); 

要select它的选项说'程序员',你可以做

 dropdown.selectByVisibleText("Programmer "); 

要么

  dropdown.selectByIndex(1); 

要么

  dropdown.selectByValue("prog"); 

快乐编码:)

你应该提到的标记名就像那个“选项”,如果带有空格的文本我们可以使用这个方法它应该工作。

 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(); } 
  WebElement selectgender = driver.findElement(By.id("gender")); selectgender.sendKeys("Male"); 

您可以使用由Maitreya发布的“Select”类Selenium WebDriver。 对不起,但我有点困惑,从下拉列表select性别为什么要比较string与“德国”。 这里是代码片段,

 Select gender = new Select(driver.findElement(By.id("gender"))); gender.selectByVisibleText("Male/Female"); 

导入import org.openqa.selenium.support.ui.Select; 添加上面的代码后。 现在select哪个性别(男性/女性)。

谷歌“select项目seleniumwebdriver”带来了如何设置一个选项作为select使用Selenium WebDriver(selenium2.0)客户端在ruby作为第一个结果。 这不是Java,但你应该能够翻译它,而不需要太多的工作。 https://sqa.stackexchange.com/questions/1355/what-is-the-correct-way-to-select-an-option-using-seleniums-python-webdriver是前5名,但不是Java,但是API非常相似。;

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

find特定的下拉元素

 Select gender = new Select(driver.findElement(By.id("gender"))); 

获取下拉框中所有元素的列表

 for(int j=1;j<3;j++) System.out.println(gender.getOptions().get(j).getText()); 

通过可见的文本select它

 gender.selectByVisibleText("Male"); 

按索引select它

 gender.selectByIndex(1); 
 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页面来testingselect选项。 上面的例子是从下拉列表中find并select语言“菲律宾”。 我相信这会解决问题。