首页 > 解决方案 > 如何使用硒等到下拉选择的选项更改?

问题描述

有时,基于页面上的其他一些操作,下拉所选项目会自动更改而无需重新加载页面(此下拉列表每次都有相同的选项数)。我们如何等到使用 selenium webdriver C# 更改下拉所选项目?

<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 selected="selected" value="449">Apple</option>
</select>

标签: c#winformsseleniumselenium-webdriver

解决方案


请尝试以下代码以等待更改的下拉选项。

public static SelectElement FindSelectElementWhenPopulated(IWebDriver driver, By by, int delayInSeconds, string optionText)
    {
        WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(delayInSeconds));
        return wait.Until<SelectElement>(drv => 
        {
            SelectElement element = new SelectElement(drv.FindElement(by));
            if (element.SelectedOption.ToString().Contains(optionText))
            {
                return element;
            }

            return null;
        }
        );
    }

我这样称呼它以等待更改的下拉选项“橙色”</p>

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

推荐阅读