selectDefaultTimePeriod

selectDefaultTimePeriod

在Selenium Web驱动程序中,列表“ #selectDefaultTimePeriod_listbox li.k-item”包含一组值。但是在执行时,列表不会产生下拉值。因此,我无法单击下拉菜单中的特定元素。

在给出断点并执行同一行时,它给出了下拉值。

 var elements = Driver.FindElements(By.CssSelector("#selectDefaultTimePeriod_listbox li.k-item"));


elements变量提供计数,但不包含下拉选项值(li.k-item值)

    foreach (var element in elements)
    {
        var name = element.Text;
        if (timeperiod.Equals(name, StringComparison.InvariantCultureIgnoreCase))
        {
            element.IsClickable();
            element.Click();
            break;
        }

    }


以下是HTML内容

<span class="k-widget k-dropdown k-header" style="width: 150px;" title="" unselectable="on" role="listbox" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-owns="selectDefaultTimePeriod_listbox" aria-disabled="false" aria-readonly="false" aria-busy="false" aria-activedescendant="0936dfb5-4f8c-4dd4-826f-f802b6a719ff">
<span class="k-dropdown-wrap k-state-default" unselectable="on">
<select id="selectDefaultTimePeriod" style="width: 150px; display: none;" data-bind="kendoDropDownList:timePeriodOptions" data-role="dropdownlist">
<option value="">Select time period</option>
<option value="Last 30 days">Last 30 days</option>
<option value="Last 60 days">Last 60 days</option>
<option value="Last 90 days" selected="selected">Last 90 days</option>
<option value="Last month">Last month</option>
<option value="Last quarter">Last quarter</option>
<option value="Last 6 months">Last 6 months</option>
<option value="Last 12 months">Last 12 months</option>
<option value="Last 365 days">Last 365 days</option>
<option value="Full year 2016">Full year 2016</option>
</select>
</span>


请让我知道,单击该元素还有其他选择吗?

最佳答案

尝试这个

document.getElementById('selectDefaultTimePeriod')。value('value_to_select')

或与jQuery这

$('#selectDefaultTimePeriod')。val('value_to_select')

09-25 20:35