webdriver与我如何迭代一个选项下拉菜单

本文关键字:一个 下拉菜单 选项 何迭代 webdriver 迭代 | 更新日期: 2023-09-27 18:15:54

我有以下下拉菜单/列表。我想做的是能够遍历每个下拉项,单击它,然后验证它是否已被选中。下面我为下拉菜单

中的3个条目提供了示例代码
<div id="rtList"><span class="rt-combobox"><input name="" type="text" autocomplete="off" label="" placeholder="" class=""><span class="rt-combobox-button" style="-webkit-user-select: none;">?</span><div class="goog-menu goog-menu-vertical" role="menu" aria-haspopup="true" style="-webkit-user-select: none; left: 342px; top: 0px; display: none;">
<div class="goog-menuitem" role="menuitem" id=":7" aria-hidden="false" style="-webkit-user-select: none;"><div class="menuitem-content">List item number 1</div></div>
<div class="goog-menuitem" role="menuitem" id=":8" style="-webkit-user-select: none;"><div class="menuitem-content">List item number 2</div></div>
<div class="goog-menuitem" role="menuitem" id=":9" aria-hidden="false" style="-webkit-user-select: none;"><div class="menuitem-content">List item number 3</div></div>
</div></span></div>

任何帮助/指针将不胜感激一如既往

感谢

***************编辑***************************

我现在让它工作了。下面是我使用的:

IWebElement parent = driver.FindElement(By.ClassName("rtlist"));
parent.Click();
foreach (IWebElement child in parent.FindElements(By.ClassName("menuitem-content")))
{
child.Click();
parent.Click();
}

webdriver与我如何迭代一个选项下拉菜单

您可以尝试使用下面的代码来单击所有菜单项。

IWebElement parent = ie.FindElement(By.Id("rtList"));
foreach (IWebElement child in parent.FindElements(By.ClassName("menuitem-content")))
{
    child.Click();
}

使用"SelectElement"类,你可以很容易地选择任何选项,如果你不需要点击。

var selectElement= new SelectElement(Driver.FindElement(By.Id("rtList")));
var optionCount = selectElement.Options.Count;
for (int i = 0; i < optionCount; i++)
{
    selectElement.SelectByIndex(i);
}