Java 使用selenium选择下拉选项

Java 使用selenium选择下拉选项,java,selenium-webdriver,Java,Selenium Webdriver,如果有人能帮我解开这个谜。。这是你的电话号码 在这里,如果您可以看到出生日期字段,我可以选择月份和日期,但不能选择年份 我试着选择使用值,索引它不工作相同的代码工作的月份和日期 下面是我的代码: WebElement W = driver.findElement(By.xpath("//html/body/form[@id='aspnetForm'][contains(@action,'ActivateAccount.aspx?key=')][@method='post'][@name='asp

如果有人能帮我解开这个谜。。这是你的电话号码

在这里,如果您可以看到出生日期字段,我可以选择月份和日期,但不能选择年份 我试着选择使用值,索引它不工作相同的代码工作的月份和日期

下面是我的代码:

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");
您也可以使用
css选择器
直接等待特定选项与以下代码一起出现

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

你能提供你试过的
code
吗?对我有用,不过你真的不应该把这样的链接放在问题里。把你的代码,解释问题。我已经添加了我的代码:)目前结束使用自动选择它只选择年份。。。如果有些人可以尝试,如果选择字段有效……为什么不直接使用
ctl00\u mcp\u ddlYear
作为标识来标识元素呢。您的
xpath
正在做很多不必是的工作。。我尝试过只使用page对象。。它不起作用。。最后尝试了所有的选择。。。没有运气,汉克斯说了很多@Saifur成功了:)我觉得明确的等待让它成功了