多个下拉框未拾取新元素(Selenium,C#)

时间:2018-10-01 18:10:32

标签: c# selenium

我必须在下拉框中尝试使用Selenium来选择第一个,但是我尝试选择第二个时,它不能选择值,但仍使用第一个元素集。

  public static void AnfoldComboBox(string sComboBoxId, string sItemText)
    {

        Drivers.CurrentDriver.FindElement(By.CssSelector($"#{sComboBoxId} + .anfold-combobox .anfold-combobox-toggle.ui-corner-right")).Click();
        IWebElement dropDownWrapper = Drivers.CurrentDriver.FindElement(By.ClassName("anfold-combobox-autocomplete"));
        ReadOnlyCollection<IWebElement> items = dropDownWrapper.FindElements(By.CssSelector(".ui-menu-item > div"));

        foreach (IWebElement item in items)
        {
            if (item.Text.Trim() == sItemText)
            {
                item.Click();
                break;
            }  
        }

1 个答案:

答案 0 :(得分:0)

能否请您尝试以下代码,并检查您是否首先从下拉列表中获取了完整列表?

SelectElement test = new SelectElement(driver.FindElement(By.CssSelector(".ui-menu-item > div")));
IList<IWebElement> size = test.Options;
int myitem = size.Count;

for (int i = 0; i < myitem; i++)
{
    String value = test.ElementAt(i).Text;
    Console.WriteLine(value);
    if (val.Equals(sItemText, StringComparison.InvariantCultureIgnoreCase))
    {
    val.click();

    }
    else{
     Console.WriteLine("Not present");
    }
}