场景: - 我们有通过 AJAX 检查错误的注册表单 - 字段有:email、confEmail、fname、lname、pwd、confPwd - 当用户在“email”字段和选项卡进入“confEmail”字段时发生错误检查。“pwd”和“confPwd”字段相同 - 我正在尝试编写模仿用户行为的自动化脚本,用户将在“email”字段中输入“test”,然后选项卡到下一个字段“confEmail”。这应该调用 AJAX 检查并抛出有关“无效电子邮件地址”的错误
测试配置: - 用 Linux 编写的测试 - 在 Mac 上的 iPhone 模拟器中运行(当然)
这段代码输入电子邮件地址: driver.findElement(By.cssSelector(Locators.getLocator("mobilebuy->emailAddressField"))).sendKeys("test");
由于 sendKeys 不会将焦点从该字段移开,因此我将 TAB/click 发送到下一个字段,以便 AJAX 启动。显然,这样做是行不通的。AJAX 永远不会触发,也不会出现错误消息。我可以看到当我在 iPhone 模拟器中手动模拟它时,它可以工作。
这应该跳到下一个字段: driver.findElement(By.cssSelector(Locators.getLocator("mobilebuy->emailAddressField"))).sendKeys(Keys.TAB);
或者
这应该单击应该触发 AJAX 的下一个字段: driver.findElement(By.cssSelector(Locators.getLocator("mobilebuy->confEmailAddressField"))).click();
关于如何处理此问题的任何想法?我仔细查看了它,甚至尝试将 UNICODE 传递给“TAB”键,但也没有用。