【发布时间】:2017-12-10 16:50:14
【问题描述】:
我有 java 脚本注入将文本发送到隐藏的输入框。但是 webdriver 抛出错误,因为元素不可见,因此无法与之交互。
WebElement tmpElement= driver.findElement(By.className("cwd_input"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript(("document.getElementsByClassName('cwd_input')
[0].click();"),tmpElement);
tmpElement.sendKeys("T");
【问题讨论】:
-
有几件事要问。 tmpElement 是页面上唯一一个类名为“cwd_input”的元素吗?为什么要两次选择元素?并使用 Javascript 进行点击?
-
WebDriver 应该模仿用户行为,用户如何在隐藏的输入中输入内容?您要求的内容违反了 WebDriver 背后的主要概念。
-
@Erik M:在应用程序中,我必须单击一个按钮并输入文本,这些文本将存储在输入框中,然后在表格中反映在屏幕上,如果我直接尝试在表格中输入文本,它不允许。当我单击下一步按钮并键入文本时,输入框会刷新,新输入的文本会显示在表格内的屏幕上。我可以通过电子邮件将网页的屏幕截图发给您吗
-
@cathal :是的,只有一个“cwd_input”类元素,因为我没有在 document.getElements 中获得发送键的选项......我先点击然后发送键。我可以让它在 selenium IDE 中工作,它的操作很简单,一个命令单击按钮,另一个命令将密钥发送到 cwd_input,但是在 webdriver 中它失败了。
-
你能提供你正在处理的元素的
html吗?