我从下拉列表中获取所有选项,但我无法选择它们,也许有人可以帮助我,如何从循环中的下拉列表中选择每个值:
<select id="1234" class="dropdown">
<option value="3">HelloWorld</option>
<option selected="selected" value="1">GoodBye</option>
<option value="2">Name</option>
<option value="5">Surname</option>
</select>
我的代码:
var elements = WebDriver.FindElement(By.Id("1234")).FindElements(By.TagName("option"));
for (var i = 0; i < elements.Count; i++){
elements[i].Click();
}
不会出现错误,只是不从下拉列表中选择值
答案 0 :(得分:2)
这是执行此操作的正确方法
SelectElement dropdown = new SelectElement(driver.FindElement(By.Id("1234")));
foreach (IWebElement option in dropdown.Options)
{
// you may need a slight delay here to give the page a chance to respond and make the change
option.Click();
}
答案 1 :(得分:1)
其次,你能不能试着介绍一下等待 选择下拉菜单并选择其项目,您可能需要 打破你的
var elements = WebDriver.FindElement(By.Id(“1234”))。FindElements(By.TagName(“option”));
分成两步,等待中间。有时,您的点击命令太快,下拉菜单无法显示其下拉菜单。出于诊断目的,您可以使用element.getAttribute('one element')查找下拉菜单选项的属性值,以确保您真正找到它们。
此下拉列表是否属于iframe?但是你说过没有错误所以它可能不属于iframe。