带c#的webdriver - 如何在选项下拉菜单中进行迭代?

时间:2014-07-31 15:38:30

标签: c# selenium selenium-webdriver webdriver

我有以下下拉菜单/列表。我想做的是能够遍历每个下拉项,点击它,然后验证它已被选中。下面我提供了下拉列表中仅有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();
}

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

使用&#34; SelectElement&#34;如果您不必点击,则可以轻松选择任何选项。

var selectElement= new SelectElement(Driver.FindElement(By.Id("rtList")));
var optionCount = selectElement.Options.Count;

for (int i = 0; i < optionCount; i++)
{
    selectElement.SelectByIndex(i);
}