Select 使用 selenium 的 DropDown 选项
Select DropDown option using selenium
如果有人能帮我解开这个谜..这是url
在这里,如果您可以看到出生日期字段,我可以 select 月份和日期,但我不能 select 年份
我尝试 selecting 使用值,索引它不起作用,相同的代码适用于月份和日期
下面是我的代码:
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");
尝试实施 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();
如果有人能帮我解开这个谜..这是url
在这里,如果您可以看到出生日期字段,我可以 select 月份和日期,但我不能 select 年份 我尝试 selecting 使用值,索引它不起作用,相同的代码适用于月份和日期
下面是我的代码:
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");
尝试实施 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();