C# 从循环中的下拉列表中选择元素
我从下拉列表中获取所有选项,但我无法选择它们,也许有人可以帮助我,如何在循环中从下拉列表中选择每个值:C# 从循环中的下拉列表中选择元素,c#,selenium,drop-down-menu,selenium-webdriver,C#,Selenium,Drop Down Menu,Selenium Webdriver,我从下拉列表中获取所有选项,但我无法选择它们,也许有人可以帮助我,如何在循环中从下拉列表中选择每个值: <select id="1234" class="dropdown"> <option value="3">HelloWorld</option> <option selected="selected" value="1">GoodBye</option> <option value="2">Nam
<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();
}
没有出现错误,只是没有从下拉列表中选择值
首先,你能确定没有其他的吗
id为1234的元素?Selenium FindElement By.Id将
始终找到符合条件的第一个元素。
第二,你能不能试着介绍一下中间的等待时间
选择下拉菜单并选择其项,您可能需要
打破僵局
var elements=WebDriver.FindElementBy.Id1234.FindElementsBy.tagnamepoption
分为两个步骤,并在两个步骤之间放置一个等待。有时,您的单击命令太快,下拉菜单无法显示其下拉菜单
出于诊断目的,您可以使用element.getAttribute'one element'来查找下拉菜单选项的属性值,以确保您真正找到了它们
此下拉列表是否属于iframe?但是您说过没有错误,所以它可能不属于iframe
这是正确的方法
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();
}
您必须先点击下拉列表吗?谢谢您添加等待时间帮助我