selenium - Selenium 与 Kendo UI
问题描述
我们将 Kendo UI 用于我们的按钮和文本框。它引起了硒的问题。如果用户手动测试,那么步骤是>>他们将鼠标拖到文本框上,文本框被突出显示并且用户点击文本框。然后光标开始出现,用户可以输入。
至于 selenium 'driver.findElement' 能够找到文本框但无法获得光标。我也尝试了 textbox.click 和鼠标事件,
解决方案
尝试使用以下executeScript
方法设置元素的值:
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("document.getElementById('elementID').setAttribute('value', 'yourValue')");
编辑:
但正如@JeffC 已经提到的,这不是一个“明确”的解决方案。你可以在下面看到更好的。
正如您在此处看到的,文本框的工作方式如下:
- 您必须通过此 xPath 单击第一个输入:
//ul[@id = 'fieldlist']/li[1]/label/span/span/input[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");
推荐阅读
- javascript - 无法访问 JSP 中的 Javascript 变量
- javascript - 从用户脚本中读取文件内容
- python - (Python,Neo4j-driver) - 检查节点是否不存在时如何返回none
- java - codeigniter 依赖下拉列表
- javascript - 在输入时关闭 HTML 数据列表下拉列表
- xpath - 为什么 install4j 在我的 xml 文件中添加空行
- java - 在稀疏矩阵的情况下,EJML 重塑函数是否有效?
- apache - 如何在 Apache 上将 HTTP 重定向到 HTTPS?
- git - 分叉存储库应该只推送更改吗?
- android - 测试广告显示但真实广告不显示(广告加载失败:3)