- 目前正在使用Selenium WebDriver和Java。如果我有一个名为Product的下拉列表名称..
- 在该下拉菜单中,我有这么多的值(例如:60)。当执行代码时,我取消选择所有选项,然后我选择了我想要的选项,因为默认情况下,所有值都在HTML中选定。
- 如果我想同时选择所有选项,同样的方法..我该如何执行该操作。
<select id="productId" multiple="" style="width: 125px; display: none;" name="products[]">
<option selected="" value="1020 ROUTER SERIES">1020 ROUTER SERIES</option>
<option selected="" value="1030 ROUTER SERIES">1030 ROUTER SERIES</option>
<option selected="" value="1040 ROUTER SERIES">1040 ROUTER SERIES</option>
<option selected="" value="1061 ROUTER">1061 ROUTER</option>
</select>
等等。
下面是示例代码:
Log.info("Clicking on Product dropdown");
JavascriptExecutor executor31 = (JavascriptExecutor)driver;
executor31.executeScript("document.getElementById('ProductId').style.display='block';");
Select select31 = new Select(driver.findElement(By.id("ProductId")));
select31.deselectAll();
select31.selectByVisibleText("1222");
Thread.sleep(6000);
JavascriptExecutor executor32 = (JavascriptExecutor)driver;
executor32.executeScript("document.getElementById('ProductId').style.display='block';");
Select select32 = new Select(driver.findElement(By.id("ProductId")));
select32.selectByVisibleText("1020");
6条答案
按热度按时间qrjkbowd1#
您不能使用类似于deselectAll()的任何操作。但是,您可以迭代每个选项并每次都选择。请尝试以下操作:
看看是否有帮助。对于Control + A,请尝试以下操作:
f1tvaqid2#
我们把所有选项都放到一个网络元素列表中,然后我们可以遍历这个列表来选择所有选项。
如果这对你有帮助就告诉我。
3bygqnnd3#
我建议尝试另一种解决方案,早些时候我也使用循环来选择下拉列表中的所有元素,但当它们的数量很大时,可能会花费很长时间。我尝试过,它的工作是:
我知道这是一年前的事了,但它仍然可以帮助别人。
vhmi4jdf4#
1.首先检查下拉菜单是否支持多选。
1.如果可以选择多个选项,请将选择的所有选项收集到一个列表中。
1.使用for循环迭代列表中的所有元素并选择它们。
ttp71kqs5#
xghobddn6#
在Enhanced for循环中,添加了
webElement.click()
。这将选择web元素。由于此循环没有任何条件,因此将选择所有值。