我是硒网络驱动程序的初学者。我无法选择剑道下拉列表
这是我的代码:
Select profcat = new Select (driver.findElement(By.xpath("/html/body/div[1]/div[2]/section[2]/section/div/div[2]/div/div/form/div/div/div[1]/div/div[1]/div[4]/div/div/div/span/span/span[1]")));
profcat.selectByIndex(2);
<div unselectable="on" style="overflow: auto; position: relative; height: auto;">
<ul unselectable="on" class="k-list k-reset" tabindex="-1" aria-hidden="true" id="ddlCategoryTy_listbox" aria-live="polite" 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" id="f3776f55-02cc-45e9-9dd1-b32f24d457bd">Select</li>
<li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="1">Room</li>
<li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="2">Health Club</li>
<li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="3">Laundry</li>
<li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="4">Recreational Activities</li>
</ul>
</div>
答案 0 :(得分:2)
要从下拉列表中选择一项,您将需要编写XPath来查询要选择的元素的文本。我还会在您希望单击的选项上调用WebDriverWait
,以说明下拉选项的任何延迟加载时间:
// expand the dropdown -- click on the div, may need to click something else
driver.findElement(By.xpath("//div[ul[@id='ddlCategoryTy_listbox']]")).click()
// wait on an option to exist
WebDriverWait wait = new WebDriverWait(driver, 10);
optionToClick = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//li[text()='Health Club']")));
// click the option
optionToClick.click();
您需要导入org.openqa.selenium.support.ui.ExpectedConditions
和org.openqa.selenium.support.ui.WebDriverWait
才能使其正常工作。
上面的代码单击div
元素以展开下拉列表,然后使用XPath选择选项“ Health Club”(健康俱乐部),该XPath可以查询li
文本。您可能需要更新用于扩展下拉菜单的选择器-根据您提供的HTML,我无法确定打开下拉菜单以显示选项的元素。
答案 1 :(得分:0)
Kendo UI没有通常的下拉菜单。因此您的代码将无法使用。您需要使用下一个算法:
我正在使用这种算法来处理此类下拉菜单。