我目前正在使用 PhantomJS 来查看某些文档的报告,并查看我发现的一些示例。
window.setTimeout(function () {
page.render(output);
console.log(output);
phantom.exit();
}, 200);
我想知道为什么要使用window.setTimeout?它会影响网页渲染吗?
谢谢......尼克。
答案 0 :(得分:6)
仅在加载页面时调用page.open回调。这并不意味着页面中已加载了所有内容,并且js已完全执行。
此外,网页上的js可能不会立即执行,特别是如果网站使用AngularJS或Ember.js等MVC客户端框架:在页面加载事件之后会完成很多工作。
使用setTimeout会有一点延迟,以确保您的页面完全呈现。
有时候200毫秒没有投入,你必须增加持续时间。
另一种方法是使用waitfor.js example:等待测试条件为真,例如元素是可见的。