如何使用Selenium Java填充Kendo UI自动完成功能

时间:2017-01-20 05:21:49

标签: java selenium selenium-webdriver automation

我使用sendkeys方法在Kendo UI自动完成输入字段中输入值。然后,我选择了该字段。选中字段后,输入的值将消失。

在我选择字段之前,我怎么能等到输入的值填充到字段上?

<td class="k-edit-cell" role="gridcell" tabindex="0" data-role="editable">
<span class="k-widget k-autocomplete k-header k-state-default" tabindex="-1" role="presentation" style="width: calc(100% - 30px);">
<td class="k-edit-cell" role="gridcell" tabindex="0" data-role="editable">
<input id="ddAssetID" class="k-input" style="width: 100%;" data-bind="value: AssetNumber" data-role="autocomplete" autocomplete="off" role="textbox" aria-haspopup="true" aria-disabled="false" aria-readonly="false" aria-owns="ddAssetID_listbox" aria-autocomplete="both" type="text">
<span class="k-icon k-loading" style="display:none"></span>

由于

1 个答案:

答案 0 :(得分:1)

对于Kendo UI自动完成框示例(http://demos.telerik.com/kendo-ui/autocomplete/index),您可以使用以下Java代码段在框中键入“Aus”,等待“Austria”元素可单击,然后单击它以便“奥地利”被添加:

driver.get("http://demos.telerik.com/kendo-ui/autocomplete/index");

driver.findElement(By.id("countries")).sendKeys("Aus");
WebElement austria = new WebDriverWait(driver, 5).until(ExpectedConditions.elementToBeClickable(By.xpath("//li[contains(text(), 'Austria')]")));
austria.click();        

assertTrue(driver.findElement(By.id("countries")).getText().contains("Austria"));