首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Selenium sendKeys输入错误

Selenium sendKeys输入错误
EN

Stack Overflow用户
提问于 2017-02-02 16:53:52
回答 4查看 1.2K关注 0票数 1

在我的Selenium测试中,我遇到了一个关于sendKeys方法的奇怪问题。在我的webapp中,我有很多带有默认值的输入,我使用findElements()来获取这些输入,然后尝试填充它们,非常简单。为了简单起见,我有这样的东西:

代码语言:javascript
复制
List<WebElement> allInputs = driver().findElements(By.className("pouet"));
for (WebElement e : allInputs) {
    e.clear();
    e.sendKeys("pouet");
}

它可能会失败,因为有时sendKeys()填充了错误的输入,而clear()却在正确的输入上正确执行。

有没有人已经遇到过这样的问题?

非常感谢:)

EN

回答 4

Stack Overflow用户

发布于 2017-02-02 16:56:55

这很奇怪,但它发生在我的例子中,有时我的firefoxdriver在错误的字段中写入,即使所有字段都是唯一的并成功找到。两个sendKeys()调用之间的小时间间隔解决了这个问题。我没有使用休眠(您可以尝试使用Thread.sleep(5000)进行测试,以确保这是正确的),简单地验证在这两次调用之间是否在字段中写入了正确的文本是足够的时间,以便下一次sendKeys()写入正确的字段。

票数 2
EN

Stack Overflow用户

发布于 2017-02-02 17:10:06

遇到这种情况,对于我的情况,有时我的清除似乎失败了,并且我的sendKeys附加了以前的值。所以我需要把Thread.sleep(1000)放在e.clear()和e.sendKeys()之间。

然而,根据您的描述,您的问题似乎更多的是无法指向正确的文本字段。你应该试着把睡眠放在sendKeys()之后,就像@acikojevic说的那样。

票数 0
EN

Stack Overflow用户

发布于 2020-09-11 10:17:14

在清除输入字段之前,先尝试使用_click_ing。如果不单击,有时该字段将无法清除/输入。所以:

代码语言:javascript
复制
    e.click();
    e.clear();
    e.sendKeys("pouet");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41997829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档