一尘不染

如何使用Java在Selenium WebDriver中选择下拉值

java

是selenium的新手,目前正在使用selenium webdriver,我想从下拉列表中选择一个值。id = periodId和选项很多,因为它试图选择“最近52周”。

这是HTML代码:

<select id="periodId" name="period" style="display: none;">
    <option value="l4w">Last 4 Weeks</option>
    <option value="l52w">Last 52 Weeks</option>
    <option value="daterange">Date Range</option>
    <option value="weekrange">Week Range</option>
    <option selected="" value="monthrange">Month Range</option>
    <option value="yeartodate">Year To Date</option>
</select>

请为我建议一些单击下拉菜单的方法。

我尝试使用上面的示例行,但遇到诸如Element当前不可见等错误,因此可能无法与Command duration或timeout交互:32毫秒下拉列表值为jquery multiselect小部件格式。


阅读 334

收藏
2020-03-19

共1个答案

一尘不染

只需将你的WebElement包装到Select Object中,如下所示

Select dropdown = new Select(driver.findElement(By.id("identifier")));

完成此操作后,你可以通过3种方式选择所需的值。考虑这样的HTML文件

<html>
<body>
<select id = "designation">
<option value = "MD">MD</option>
<option value = "prog"> Programmer </option>
<option value = "CEO"> CEO </option>
</option>
</select>
<body>
</html>

现在确定下拉菜单

Select dropdown = new Select(driver.findElement(By.id("designation")));

要选择其选项,请说“程序员”,你可以执行

dropdown.selectByVisibleText("Programmer ");

要么

dropdown.selectByIndex(1);

要么

 dropdown.selectByValue("prog");
2020-03-19