首页 > 解决方案 > Selenium 与 Kendo UI

问题描述

我们将 Kendo UI 用于我们的按钮和文本框。它引起了硒的问题。如果用户手动测试,那么步骤是>>他们将鼠标拖到文本框上,文本框被突出显示并且用户点击文本框。然后光标开始出现,用户可以输入。

至于 selenium 'driver.findElement' 能够找到文本框但无法获得光标。我也尝试了 textbox.click 和鼠标事件,

标签: seleniumkendo-ui

解决方案


尝试使用以下executeScript方法设置元素的值:

JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("document.getElementById('elementID').setAttribute('value', 'yourValue')");

编辑:

但正如@JeffC 已经提到的,这不是一个“明确”的解决方案。你可以在下面看到更好的。

正如您在此处看到的,文本框的工作方式如下:

  1. 您必须通过此 xPath 单击第一个输入://ul[@id = 'fieldlist']/li[1]/label/span/span/input[1]

在此处输入图像描述

这是这个输入字段:

在此处输入图像描述

  1. 在点击第一个输入之前第二个输入

在此处输入图像描述

display:none。现在它有了display:inline-block,所以我们可以sendKeys()通过这个 xPath 对这个(第二个)元素执行操作//ul[@id = 'fieldlist']/li[1]/label/span/span/input[2]

你可以在你的情况下做同样的事情。

PS在代码中是这样的:

WebElement firstInput = driver.findElement(By.xpath("//ul[@id = 'fieldlist']/li[1]/label/span/span/input[1]")); 
firstInput.click();

new WebDriverWait(driver,10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//ul[@id = 'fieldlist']/li[1]/label/span/span/input[2]")); // waits until second input becomes visible

WebElement secondInput = driver.findElement(By.xpath("//ul[@id = 'fieldlist']/li[1]/label/span/span/input[2]")); 
secondInput.sendKeys("55");

推荐阅读