我使用Phantomjs来检查我的应用程序。我正在查看的页面包含很多组件,由Angularjs提供支持。我的测试服务器很慢。在onLoadFinished
事件中,我使用render:
page.onLoadFinished = function(response) {
console.log(response, page.url);
if (page.url.indexOf("login") == -1) {
page.render('zoot.png');
phantom.exit();
}
};
我的问题是zoot.png
仅包含网站的菜单栏。呈现菜单栏的文本和静态图像,但图标是X。主页面区域为空白。文本版本号出现在右下方,这是预期的。
当render
发生时,看起来页面未完全绘制。还有其他事件意味着已经完成并准备好使用"?
答案 0 :(得分:3)
当角度完成渲染时,您可能会找到一种方法here来注册事件,但如果您愿意等待一段时间,则可能没有必要:
page.onLoadFinished = function(response) {
console.log(response, page.url);
if (page.url.indexOf("login") == -1) {
setTimeout(function(){
page.render('zoot.png');
phantom.exit();
}, 1000);
}
};
您还可以使用waitFor
显式等待表示负载结束的选择器的出现。
请注意,page.open(url);
和page.onLoadFinished = finishedFunction;
与page.open(url, finishedFunction)
相同。