我在IE11中面临这个问题
我正在FF中执行我的脚本,运行正常
但是在IE中运行脚本时运行速度太快,无法验证用户输入的电子邮件ID是否正确
ac.VerifyEmailTextBoxIsEditable();
功能包括: var loginCredentials = new LoginModel(_driver); //登录模型包含:data txtBox_email.Clear(); txtBox_email.SendKeys(loginCredentials._EmailAddressUnRegistered);
ac.pwdChoice_no.Click();
ac.btn_continue.Click();
在完成电子邮件验证之前,它会执行脚本,因为我输入了正确的电子邮件
“错误登录所需的电子邮件ID字段”
如果我手动操作它可以正常工作。
答案 0 :(得分:1)
如果您尝试减慢测试脚本执行速度,则需要配置隐式或显式等待。在Java中,有很多方法可以做到这一点 - 通过扩展事件监听器或只是普通的Jpected ExpectedConditions。
http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp
我喜欢在与之交互之前等待实际元素可见。换句话说,在发送密钥之前等待元素可见。
e.g。
new WebDriverWait(driver, 30)).until(ExpectedConditions.visibilityOf(txtBox_email));
在此之后,您可以发送密钥甚至获取在txtBox_email中设置的值...在调用txtBox_email.Click()之前(C#I" m假设)。如果您不关心紧密反馈循环= P,您甚至可以等到txtBox_email填充。
最后,我建议您研究ExpectedConditions类/文件,以便最终构建自己的显式等待(唯一情况)。