从下拉菜单中选择元素

本文关键字:元素 选择 下拉菜单 | 更新日期: 2023-09-27 18:09:48

我从下拉菜单中获得所有选项,但我不能选择它们,也许有人可以帮助我,如何从下拉菜单中选择每个值:

<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();
}

没有出现错误,只是没有选择下拉菜单中的值

从下拉菜单中选择元素

这是正确的做法

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. 首先,你能确保没有其他的吗id为"1234"的元素?硒元素分类Id将总是找到第一个符合你的条件的元素。
  2. 其次,你能试着在两者之间引入一点等待吗选择下拉菜单并选择其项,您可能需要打破你的

    var elements = WebDriver.FindElement(By.Id("1234")).FindElements(By.TagName("option"));

    分成两步,中间放一个等待。有时候,你的点击命令太快了,下拉菜单无法显示它的下拉菜单

  3. 对于诊断目的,您可以使用element。getAttribute('one element')来为你的下拉菜单选项找到一个属性值,只是为了确保你已经真正找到了它们。

  4. 这个下拉列表属于iframe吗?但是你说没有错误,所以它可能不属于iframe。