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

2022-08-31 16:34:00

我是硒的新手,目前正在研究硒网络驱动程序,我想从下拉列表中选择一个值。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>

请建议我一些单击下拉列表的方法。

我尝试使用上面的示例行,但遇到错误,例如元素当前不可见,因此可能无法与命令持续时间或超时进行交互:32毫秒下拉列表值是jquery多选小部件格式。


答案 1

只需将 WebElement 包装到“选择对象”中,如下所示

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

答案 2

如果你想在一行中写所有东西,请尝试

new Select (driver.findElement(By.id("designation"))).selectByVisibleText("Programmer ");

推荐