C# 如何使用selenium遍历非选择下拉列表?

C# 如何使用selenium遍历非选择下拉列表?,c#,jquery,selenium,testing,automated-tests,C#,Jquery,Selenium,Testing,Automated Tests,我试图在KendoUI下拉列表中获得所有可用选项,该下拉列表使用“k-dropdown”作为控件,而不是“select”。因此,我不能使用以下内容(因为没有select元素): HTML: <span class="k-widget k-dropdown k-header" unselectable="on" role="listbox" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-owns="orderStat

我试图在KendoUI下拉列表中获得所有可用选项,该下拉列表使用“k-dropdown”作为控件,而不是“select”。因此,我不能使用以下内容(因为没有select元素):

HTML:

<span class="k-widget k-dropdown k-header" unselectable="on" role="listbox" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-owns="orderStatus_listbox" aria-disabled="false" aria-readonly="false" aria-busy="false" aria-activedescendant="orderStatus_option_selected">
    <span unselectable="on" class="k-dropdown-wrap k-state-default">
        <span unselectable="on" class="k-input">All orders</span>
        <span unselectable="on" class="k-select">
            <span unselectable="on" class="k-icon k-i-arrow-s">select</span>
        </span>
    </span>
    <input id="orderStatus" name="orderStatus" type="text" data-role="dropdownlist" style="display: none;">
    </span>

正如您所发现的,您将无法使用
SelectElement
类型。您将需要像对待任何其他元素一样对待它。您需要单击“类似选择”元素以打开下拉列表,然后单击表示要选择的类似选项元素的元素。根据下拉菜单打开的速度,两次单击之间可能需要短暂等待


如果看不到用于下拉列表和选项的全部HTML,我无法提供代码,但您可能可以自己找到它并给出上面的说明。

我正试图使用xPath这样做:“TypeDropDownLocator.Click();FindElement(By.XPath(“span[.='Draft orders']”)。单击()但是我找不到正确的xpath,有人能帮我找到上面的标记吗?
<span class="k-widget k-dropdown k-header" unselectable="on" role="listbox" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-owns="orderStatus_listbox" aria-disabled="false" aria-readonly="false" aria-busy="false" aria-activedescendant="orderStatus_option_selected">
    <span unselectable="on" class="k-dropdown-wrap k-state-default">
        <span unselectable="on" class="k-input">All orders</span>
        <span unselectable="on" class="k-select">
            <span unselectable="on" class="k-icon k-i-arrow-s">select</span>
        </span>
    </span>
    <input id="orderStatus" name="orderStatus" type="text" data-role="dropdownlist" style="display: none;">
    </span>
public ViewOrdersPage SearchDraftOrders(string type)
{
    TypeDropDownLocator.Click();
    Driver.FindElement(By.XPath("id('orderStatus_listbox')/li[2]")).Click();
    SearchOrdersButton.Click();
    return this;
}