-2

我正在研究 selenium 3,并且我遇到了一个问题来满足下拉菜单的需求……是否有 selenium 3 从下拉菜单中选择的解决方案?

public static void main(String[] args) throws IOException {

     WebDriver driver = new FirefoxDriver();
     String baseUrl = "http://newtours.demoaut.com";
     driver.manage().window().maximize();
     driver.get(baseUrl);

     driver.findElement(By.name("userName")).sendKeys("rubric2016");
     driver.findElement(By.name("password")).sendKeys("rubric2016");

     driver.findElement(By.name("login")).click();

     Select dropdown = new Select(driver.findElement(By.name(“fromMonth"))); 
     dropdown.selectByVisibleText(“March");


 }
}

当我执行上面的代码时,下拉菜单没有被选中?

4

1 回答 1

0

试试这个方法。

wait点击后放一些login button。等待我使用了explicit wait方法。

例如,从下拉列表中我想选择April月份并且我使用xpath定位器来查找dropdown element.

我在relative xpath这里使用方法来定位下拉元素。

如果您想从下拉列表中选择另一个月份,则只需更改selectByVisibleText("Your Month");

driver.get("http://newtours.demoaut.com");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

driver.findElement(By.name("userName")).sendKeys("rubric2016");
driver.findElement(By.name("password")).sendKeys("rubric2016");

driver.findElement(By.name("login")).click();

WebDriverWait wait = new WebDriverWait(driver, 15);
wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.xpath("//form/table/tbody/..//select[@name='fromMonth']"))));
new Select(driver.findElement(By.xpath("//form/table/tbody/..//select[@name='fromMonth']"))).selectByVisibleText("April");
于 2017-03-17T06:46:58.253 回答