如何使用xpath选择Kendo Drop Down

时间:2015-10-08 14:13:37

标签: selenium xpath kendo-ui

我有以下HTML:



<table class="w98">
<tbody>
<tr>
<tr>
<tr>
<td class="p-controlSetLabel">
<td class="editor-field">
**<span class="k-widget k-dropdown k-header" style="width: 165px;" title="" unselectable="on" role="listbox" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-owns="VatRateId_listbox" aria-disabled="false" aria-readonly="false" aria-busy="false" aria-activedescendant="304dd433-4a68-458b-a6d6-03b72335f1cb">**
<span class="k-dropdown-wrap k-state-default" unselectable="on">
<span class="k-input" unselectable="on">Standard - Standard</span>
<span class="k-select" unselectable="on">
<span class="k-icon k-i-arrow-s" unselectable="on">select</span>
</span>
</span>
<input id="VatRateId" class="k-valid" type="text" value="d20b" style="width: 165px; display: none;" name="VatRateId" data-val-required="Please select a VAT Rate." data-val="true" data-role="dropdownlist">
&#13;
&#13;
&#13;

隐藏了input id="VatRateId",因此我无法访问它。

我目前的解决方案如下: var allDropDownFields = FindElements(By.XPath(".//*[@class='k-dropdown-wrap k-state-default']") - 这将返回所有下拉字段的列表

然后我循环每一个以找到我想要的正确下拉字段。

有没有更好的方法来查找元素而不获取列表,我尝试了以下内容:

FindElement(By.XPath(".//*[@class='k-dropdown-wrap k-state-default'and @aria-owns = 'VatRateId_listbox']")

以上代码无效。

HTML代码如下: -

<span class="k-widget k-dropdown k-header" style="width: 165px;" title="" unselectable="on" role="listbox" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-owns="VatRateId_listbox" aria-disabled="false" aria-readonly="false" aria-busy="false" aria-activedescendant="304dd433-4a68-458b-a6d6-03b72335f1cb">* <span class="k-dropdown-wrap k-state-default" unselectable="on"> <span class="k-input" unselectable="on">Standard - Standard</span>

有什么更好的建议吗?

0 个答案:

没有答案