java - 使用 selenium 选择 DropDown 选项

标签 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");

最佳答案

尝试实现显式等待。这将确保在开始查找之前存在 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();

关于java - 使用 selenium 选择 DropDown 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28398844/

相关文章:

Java,Base64 : How to write a Base64OutputStream class using Decorator Pattern

java - 可以自动重载吗?

java - Selenium 自动化 - 如何从此列表中选择一个下拉菜单项而不会出现异常错误?

java - 如何识别没有 style 属性的 <li> 标签?

python - 如何在 Selenium Webdriver 2 Python 中获取当前 URL?

java - 如何根据gxt中可编辑网格中的另一个单元格值使单元格不可编辑

Java-Socket : Multiple Clients error

java - log4j2 RollingFile 附加程序

C# 在 Chrome Portable 和 driver.Navigate().GoToUrl 中使用 Selenium

python - 属性错误: module 'selenium.webdriver.common.by' has no attribute 'XPATH' using Selenium Python