首页 > 解决方案 > 多个下拉框不拾取新元素(Selenium,C#)

问题描述

我必须下拉框,我尝试使用 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;
            }  
        }

标签: c#selenium

解决方案


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

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

推荐阅读