Web应用程序使用Javascript聚焦到文本字段onload是很常见的。例如,在登录页面中,我们可以使用Javascript来关注用户名字段。
将WebDriver与FirefoxDriver一起使用时,我使用sendKeys来填充这些字段。但是,大多数情况下,Javascript焦点功能将执行而 WebDriver正在发送实际字符,因此我对另一个字段(例如密码字段)的输入是部分的,其余字段将转到焦点字段
我该如何处理这个案子?据我所知,阻塞API在加载页面内容时返回,而不是在Javascript执行完成时返回,因此这种情况是可以理解的。但是,我不认为使用“等待”是一个不错的解决方案,因为它意味着对测试开发的过多干扰。
答案 0 :(得分:0)
我提出了三种可能的解决方案,但实际上并没有保证能够正常工作:
document.readyState
会返回"complete"
吗?如果没有,您可以在每click()
之后等待。{/ li>
driver.switchTo().activeElement();
(返回活动元素)返回您的文本字段,然后开始输入。我想你之后也应该打电话给driver.switchTo().defaultContent();
,但我不确定。类似的方法是获得document.activeElement
。