如何在Selenium IDE中读取下拉菜单的所有值?
我有一个下拉菜单,其中有值(例如日期),我需要选择每个值,然后单击提交按钮并生成报告,再次选择下一个值…循环一直持续到下拉列表值结束。
我怎么能做到这一点与硒IDE?
你可以使用一个循环,循环将遍历下拉菜单中的选项。
List<WebElement> dropdown = driver.findElements(locator));
for(WebElement t : dropdown) {
String valueText = t.getText();
Select value = new Select(driver.findElement(locator);
value.selectByVisibleText(valueText);
buttonSubmit.click;
}
要在Selenium-IDE中优雅地实现这一点有点棘手。正如Apjuh所提到的,循环是选择每个值的最佳方式。不幸的是,默认情况下Selenium-IDE没有任何流控制命令。这里有两个选择:
1)手动实现循环的每次迭代。不推荐。
2)下载并安装Selenium-IDE的Flow Control插件。我自己没有使用它的任何经验,但我现在可能会尝试一下,并报告结果。
从这里,应该可以构造一个循环来做你需要做的事情。
编辑:在与Selenium-IDE进行了半小时的战斗之后,我只能得出结论,Selenium-IDE可能不是这里工作的最佳工具!以下命令可以成功地模拟for
循环:
store | 0 | i
label | loopStart
getEval | alert("i = " + storedVars.i)
store | javascript{storedVars.i++;}
gotoIf | storedVars.i < 4 | loopStart
…但让它与下拉框(例如选择索引i
的选项)很好地发挥作用被证明是有问题的,最终对一个简单的任务来说太麻烦了。如果可能的话,我认为研究Selenium WebDriver是值得的,它允许使用实际的代码。使用c#, Apjuh的答案将完美地执行这项工作,我想他不会花半个小时就能做到这一点!