【发布时间】:2016-04-15 09:00:12
【问题描述】:
我设置了一个运行良好的网络自动化框架。我一直有一个问题,当使用 SendKeys 写入文本框时,经常会遗漏一封信。因此,例如,如果我的数据集是“TestUserName”,则会发送诸如“TestUerName”之类的带有缺失字母的示例。
这对我来说是个大问题,因为在网络测试成功结束后,我会进一步检查数据库是否正确更新。因此,在上面的示例中,我将转到 UserName 列并期望找到 TestUserName,但测试会失败,因为找到的是 TestUerName。
有什么想法吗?我正在使用硒 2.53.0。
下面是我的代码。
public void inputValue (Object [][] valuesFromExcel)
{
for (int rowNow = 0; rowNow < (valuesFromExcel.length); rowNow++)
{
String newValue = valuesFromExcel[rowNow][0].toString();
if (!newValue.equals(""))
{
WebElement currentElement = driver.findElement(By.id(valuesFromExcel[rowNow][1].toString()));
if (currentElement.getTagName().equals("input"))
{
currentElement.sendKeys(newValue);
}
else if (currentElement.getTagName().equals("select"))
{
new Select(currentElement).selectByVisibleText(newValue);
}
}
}
}
谢谢。
【问题讨论】:
-
请更新你的 selenium 最新版本我猜是 2.53
-
请(现在和一般情况下)在通过执行更新更改问题之前向我们展示您的代码。它不会是 Selenium 错误(虽然 2.44 有点旧。)
-
嗨@rajNishKuMar,我需要你的评论作为这样做的动力:) 我已经更新到 2.53 并且不得不安排一些事情。但是上面的代码仍然给我的 sendKeys 带来了问题。例如。应该写入的数据是 MyNameIsDragonfly,但写入的是 MynameIsDragonfly,或者在一种情况下只写入了 MyName。虽然这是间歇性的,所以 sendKeys 很多次都可以正常工作。
-
这是我的猜测,请确认。 sendkeys 非常适合基于 Web 的应用程序,我没有看到任何类似上述的症状。你可以确认当你在输入框中使用 sendkeys 时,你的 DOM 在那个时间点是稳定的还是在内部它会被刷新
-
嗨,你也试过 javascript 执行器,如果不是,那么请像 JavascriptExecutor jse = (JavascriptExecutor) 驱动程序一样使用它; jse.executeScript("document.getElementById('gbqfq').value = 'TestUserName';");
标签: selenium selenium-webdriver