如何使用selenium网络驱动程序等待加载下拉列表



我在一个页面上有两个下拉菜单。

第一个下拉列表:

<select name="ddlColor_N" onchange="javascript:setTimeout('__doPostBack('ddlColor_N','')', 0)" id="ddlColor_N" class="Searchddl" style="text-decoration: none; width: 152px; height: 22px;">
        <option selected="selected" value="">Select</option>
        <option value="91_CC_A">Red</option>
        <option value="248_PS_A">Green</option>
        <option value="27_CG_A">Yellow</option>
    </select>

第二个下拉

<select name="ddlFruit_N" id="ddlFruit_N" class="Searchddl" style="text-decoration: none; width: 152px; height: 22px;">
    <option value="">Select</option>
    <option value="447">Grapes</option>
<option value="448">Mango</option>
<option value="449">Apple</option>
</select>

当我在第一个下拉列表中点击红色时,在第二个下拉列表中将在几秒钟后自动加载苹果。

我的问题来了,我如何才能等待第二个下拉列表完全加载。

Am使用C#谢谢

请尝试以下代码。我们将检查要加载的选项。

public static SelectElement FindSelectElementWhenPopulated(IWebDriver driver, By by, int delayInSeconds)
    {
        WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(delayInSeconds));
        return wait.Until<SelectElement>(drv => 
        {
            SelectElement element = new SelectElement(drv.FindElement(by));
            if (element.Options.Count >= 2)
            {
                return element;
            }
            return null;
        }
        );
    }

我这样称呼它:

Myclass.FindSelectElementWhenPopulated(driver, By.CssSelector("#ddlFruit_N"), 20);

最新更新