javascript - onLoadFinished 触发时页面未完全加载/渲染

标签 javascript angularjs phantomjs

我正在使用 Phantomjs 来检查我的应用程序。我正在查看的页面包含很多组件,并且由 Angularjs 提供支持。我的测试服务器很慢。在 onLoadFinished 事件中,我使用渲染对网页进行成像:

page.onLoadFinished = function(response) {
    console.log(response, page.url);
    if (page.url.indexOf("login") == -1) {
        page.render('zoot.png');
        phantom.exit();
    }
};

我的问题是 zoot.png 仅包含网站的菜单栏。菜单栏的文本和静态图像已渲染,但图标为 X。主页区域是空白的。文本版本号出现在预期的右下角。

渲染发生时页面似乎尚未完全绘制。是否还有另一个事件表示“完成并可供使用”?

最佳答案

你可能会找到一种方法here当 Angular 完成渲染时注册一个事件,但如果您愿意等待一段静态时间,则可能没有必要:

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) 相同.

关于javascript - onLoadFinished 触发时页面未完全加载/渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27260702/

相关文章:

javascript - IE 9 不显示单击下拉菜单

javascript - 无法调用方法 tinymce

javascript - 无法使用 jquery 和 php $_GET 导出 html 表

javascript - Angularjs 有条件地编辑模型

javascript - 无法在 phantomjs 中获取 span 元素的左上角坐标,但在浏览器中它可以工作

javascript - 在 vue.js 组件中操作 props

javascript - 我在让 AngularJS 正确显示我的表格时遇到问题

javascript - 你能制作 :after styling dependent on the element value? 吗

javascript - 解析动态网页

c# - 如何在 phantomjsdriver selenium c# 中启用 cookie?