在我的Selenium测试中,我遇到了一个关于sendKeys方法的奇怪问题。在我的webapp中,我有很多带有默认值的输入,我使用findElements()来获取这些输入,然后尝试填充它们,非常简单。为了简单起见,我有这样的东西:
List<WebElement> allInputs = driver().findElements(By.className("pouet"));
for (WebElement e : allInputs) {
e.clear();
e.sendKeys("pouet");
}它可能会失败,因为有时sendKeys()填充了错误的输入,而clear()却在正确的输入上正确执行。
有没有人已经遇到过这样的问题?
非常感谢:)
发布于 2017-02-02 16:56:55
这很奇怪,但它发生在我的例子中,有时我的firefoxdriver在错误的字段中写入,即使所有字段都是唯一的并成功找到。两个sendKeys()调用之间的小时间间隔解决了这个问题。我没有使用休眠(您可以尝试使用Thread.sleep(5000)进行测试,以确保这是正确的),简单地验证在这两次调用之间是否在字段中写入了正确的文本是足够的时间,以便下一次sendKeys()写入正确的字段。
发布于 2017-02-02 17:10:06
遇到这种情况,对于我的情况,有时我的清除似乎失败了,并且我的sendKeys附加了以前的值。所以我需要把Thread.sleep(1000)放在e.clear()和e.sendKeys()之间。
然而,根据您的描述,您的问题似乎更多的是无法指向正确的文本字段。你应该试着把睡眠放在sendKeys()之后,就像@acikojevic说的那样。
发布于 2020-09-11 10:17:14
在清除输入字段之前,先尝试使用_click_ing。如果不单击,有时该字段将无法清除/输入。所以:
e.click();
e.clear();
e.sendKeys("pouet");https://stackoverflow.com/questions/41997829
复制相似问题