使用selenium选择DropDown选项

时间:2015-02-08 20:13:16

标签: java selenium-webdriver

如果有人可以帮助我解决这个谜团..这是url

如果您可以看到出生日期字段,我可以选择月份和日期,但我无法选择年份 我尝试选择使用值,索引它不起作用相同的代码适用于月和日期

以下是我的代码:

WebElement W = driver.findElement(By.xpath("//html/body/form[@id='aspnetForm'][contains(@action,'ActivateAccount.aspx?key=')][@method='post'][@name='aspnetForm']/div[@class='border4']/div[@id='page']/div[@class='IE-SCroll-mid']/div/div[@class='change-info-contain']/div/div/div/label[3]/select"));     
Select dropdown = new Select(W);
dropdown.selectByValue("1997");

1 个答案:

答案 0 :(得分:0)

尝试实施explicit等待。这将确保elemenet在开始寻找之前存在。

By byId = By.id("ctl00_mcp_ddlYear");

//use explicit wait to make sure the element is there
WebElement myDynamicElement = (new WebDriverWait(driver, 10))
  .until(ExpectedConditions.presenceOfElementLocated(byId));

Select dropdown = new Select(myDynamicElement);
dropdown.selectByValue("1997");

您也可以使用cssSelector直接等待具有以下代码的特定选项

//explicit wait
By byCss = By.cssSelector("#ctl00_mcp_ddlYear>option[value='1997']");
WebElement element = new WebDriverWait(driver, 10).until(ExpectedConditions.presenceOfElementLocated(byCss));
element.click();