gpt4 book ai didi

c# - 如何使用 Selenium 遍历非选择下拉列表?

转载 作者:行者123 更新时间:2023-11-30 17:41:04 25 4
gpt4 key购买 nike

我正在尝试获取 KendoUI 下拉列表中的所有可用选项,该下拉列表使用“k-dropdown”而不是“select”作为其控件。因此,我不能使用类似的东西(因为没有选择元素):

    public void ChooseOrderType(string type)
{
var mySelect = new SelectElement(TypeDropDownLocator);
var options = mySelect.Options;
foreach (var option in options) {
if (option.Text.Equals(type))
option.Click();
}

}

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>

有什么方法可以手动遍历它来获取所有选项吗?

编辑:我用 JeffC 的方法得到了它:

public ViewOrdersPage SearchDraftOrders(string type)
{
TypeDropDownLocator.Click();
Driver.FindElement(By.XPath("id('orderStatus_listbox')/li[2]")).Click();
SearchOrdersButton.Click();
return this;
}

最佳答案

如您所见,您将无法使用 SelectElement 类型。您需要像对待任何其他元素一样对待它。您将需要单击类似 SELECT 的元素以打开下拉列表,然后单击代表您要选择的类似 OPTION 的元素的元素。根据下拉菜单打开的速度,您可能需要在两次点击之间稍等片刻。

在没有看到用于下拉菜单和选项的完整 HTML 的情况下,我无法提供代码,但您可以按照上面的说明自行解决。

关于c# - 如何使用 Selenium 遍历非选择下拉列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33569796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com