如何使用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语言“菲律宾”。 我相信这会解决问题。