无法在Css选择器中获取Element值

时间:2017-10-23 14:49:03

标签: css selenium-webdriver drop-down-menu kendo-ui

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

在给出断点并执行相同的行时,它会给出下拉值。

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

元素变量给出计数但不包含下拉选项值(li.k-item value)

    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>

请告诉我,是否还有其他选项可以点击该元素?

1 个答案:

答案 0 :(得分:0)

试试这个

的document.getElementById(&#39; selectDefaultTimePeriod&#39;)值。(&#39; value_to_select&#39)

或者使用jQuery这个

$(&#39;#selectDefaultTimePeriod&#39)。VAL(&#39; value_to_select&#39)