【发布时间】:2015-08-31 03:07:58
【问题描述】:
我正在尝试让页面在执行操作之前完全加载。我不想在浏览器选项卡上的加载圆圈仍在转动时开始操作。我的等待 ajax 功能在某些情况下不起作用,尤其是对于新页面加载。我的函数是基于 JQuery 的:
JavascriptExecutor jsDriver = (JavascriptExecutor) webDriver;
boolean stillRunningAjax = (Boolean) jsDriver
.executeScript("return window.jQuery != undefined && jQuery.active != 0");
return !stillRunningAjax;
如果错误,请再次运行它。
但是对于页面加载,在它返回 true 之后,浏览器仍在加载(加载循环正在转动)几秒钟(有时更多)。
我已经尝试过隐式等待,但它会在我的函数同时停止该函数。
有人说硒没有完整的解决方案。但应该有。也许是一个包含 JavaScript 的解决方案,任何东西。
【问题讨论】:
-
听起来你的“页面准备”取决于其他的东西,而不仅仅是 jQuery 的内部活动状态。您应该与页面的开发人员交谈,但我建议(也许)等到加载微调器消失在以上变为真的之后。
-
java AND javascript 标记?
-
@Kayvar 是的,为什么?
-
@TaylanDerinbay 认为这是一个错误......我想即使它是用 Java 编写的,也有一些 jquery 所以没关系..
标签: java javascript selenium webdriver selenium-chromedriver