【问题标题】:Dropdown not getting selected下拉菜单没有被选中
【发布时间】:2017-08-08 14:16:19
【问题描述】:

我正在研究 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");


 }
}

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

【问题讨论】:

  • 请分享选择的Html代码
  • 您能否向我们提供以下信息: 1. 您的目标是什么? 2. 迎合 Dropdown 是什么意思? 3.是普通的Dropdown还是模态的Dropdown? 4.你要选择哪个值?
  • 另外提供 HTML DOM 和 Dropdown 的快照。

标签: selenium dropdown selenium3


【解决方案1】:

试试这个方法。

在点击login button 后添加一些wait。等待我使用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");

【讨论】:

  • 如果我给你的答案是helpful,那么请将此答案标记为Accepted
猜你喜欢
  • 2015-07-03
  • 1970-01-01
  • 2014-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多