【发布时间】:2018-05-02 21:37:46
【问题描述】:
我有这个代码,我填写了 2 个字段,然后点击登录按钮:
driver.findElement(By.xpath(numberInputXPath)).sendKeys(number);
driver.findElement(By.xpath(passwordInputXPath)).sendKeys(password);
driver.findElement(By.xpath(loginButtonXPath)).click();
我的问题是,有时在未填写完整字段的情况下按下登录按钮。不完整性的模式对我来说似乎是随机的。我在字符串 number 中有 11 个数字,而我的 password 是 8-alphanumeric-char 长。有时字段被完全填满,有时第一个字段不完整一半,password 完全填满,反之亦然。有时它们正常完成并且我的登录成功完成。除了线程休眠和this 解决方案,我怎么能等到我的字段被填满?
编辑
我没有时间尝试答案的解决方案,我会尽快尝试,但我正在尝试通过 page 自动登录。我等到 Selenium 识别出正确的 Login 按钮,单击它,然后按照上面的说明填写字段。我注意到每次执行 sendKeys 时,页面仍然在 Chrome 选项卡上具有加载图标。总是。所以我假设在撰写本文时总是在加载一些 JS。
【问题讨论】:
-
让我猜猜……您的浏览器使用的是 IE?
-
不,我使用
ChromeDriver作为浏览器。我在想,当 Selenium 在其上插入数据时,某些 JS 可能会更改 XPath -
@GabrielRado,请检查两个文本字段中的数字和密码是否会在您手动填写时进行验证检查,如果是这样,我猜开发人员添加的验证 Javascript 功能会破坏 selenium 正常的发送键。跨度>
-
@GabrielRado 您观察到的行为可能有很多可能性。使用相关的 HTML 更新问题