我正在测试一个需要每 5 秒刷新一次标题元素的 Web 应用程序。每当通过组中使用同一应用程序的任何人发布报价/策略时,该标头元素都会向所有用户更新一条消息。因此,我们的开发人员在所有页面和所有用户上每 5 秒连续进行一次 AJAX 调用。
为了浏览不同的页面,我最初使用隐式等待,例如,
DRIVER.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
在连续的 AJAX 调用之后,我不得不使用 WebDriver 等待显式函数并在浏览页面时查找对象可见性;喜欢,
Wait<WebDriver> wait = new WebDriverWait(DRIVER, 20);
wait.until(visibilityOfElementLocated(By.id(objID)));
(请注意 visibilityOfElementLocated 是另一个处理异常处理的函数。)
我现在的问题是,当我在 IE 8 中运行脚本时,这种显式调用代码更改效果很好。但是,当我在 IE 9 上运行它时,它的行为仍然相同并且无休止地等待页面加载(或等待 AJAX 调用结束)。而且,如果我停止浏览器调用(通过按 Esc 或 x 链接),我的脚本将继续该页面并再次挂起下一页。
任何想法,为什么 IE 9 不能像 IE 8 那样用于页面加载?有没有办法可以调试这个?
PS:我尝试更新 IEDriverServer 但徒劳无功。此外,这在 Chrome 和 FF 浏览器上运行良好。