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();
}
您可以尝试使用下面的代码来单击所有菜单项。
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);
}