请参阅下面的代码,我需要点击下拉列表以显示列表
<span class="k-widget k-dropdown k-header" style="" unselectable="on" role="listbox" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-owns="" aria-disabled="false" aria-readonly="false" aria-busy="false">
<span class="k-dropdown-wrap k-state-default k-state-hover k-state-focused" unselectable="on">
<span class="k-input" unselectable="on">Is equal to</span>
<span class="k-select" unselectable="on">
<span class="k-icon k-i-arrow-s" unselectable="on">select</span>
</span>
</span>
答案 0 :(得分:0)
driver.FindElement(By.CssSelector(".k-widget k-dropdown k-header")).click()
答案 1 :(得分:0)
我想你再次点击使用JavascriptExecutor
WebElement element1 = driver.findElement(By.xpath("//span[@class='k-widget k-dropdown k-header' and @role='listbox']"));
JavascriptExecutor executor1 = (JavascriptExecutor) oBrowser;
executor1.executeScript("arguments[0].click();", element1);
如果Xpath上面没有工作,请尝试以下方法: -
//span[@class='k-widget k-dropdown k-header']
希望它会对你有所帮助:)。
答案 2 :(得分:0)
前几天,我遇到了这个确切的问题。问题是您要引用的Kendo UI <span>
元素使用<ul>
元素获取其内文,但是<ul>
列表处理选项更改/选择。单击<span>
时,将无法从弹出/下拉菜单中选择一个选项,而必须单击<li>
元素,该元素包含跨度引用的文本选项。
在您的示例中,在HTML文档中的其他位置,您会发现一个{... 1}列表,类似于...
<ul>
如果要选择“另一个选项”,请使用硒3:
<ul unselectable="on" class="k-list k-reset" tabindex="-1" aria-hidden="true" aria-live="off" data-role="staticlist" role="listbox">
<li tabindex="-1" role="option" unselectable="on" class="k-item k-state-selected k-state-focused" data-offset-index="0">is equal to</li>
<li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="1">another option</li>
</ul>
您应该看到driver.findElement(By.xpath("//li[text()='another option']")).click();
内部文本已更改为“另一个选项”,您可以继续进行测试。