首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >幻影卡在[调试] WebPage - setupFrame "“

幻影卡在[调试] WebPage - setupFrame "“
EN

Stack Overflow用户
提问于 2015-11-12 23:47:18
回答 1查看 1K关注 0票数 0

你能告诉我为什么下面的脚本不能用吗?PhantomJS被困在

调试WebPage - setupFrame“。

代码语言:javascript
复制
// phantomjs --debug=true --ignore-ssl-errors=yes --ssl-protocol=any test.js < data.json

var page = require('webpage').create();
var system = require('system');
var input = JSON.parse(system.stdin.read(2000));

console.log(JSON.stringify(input));

//phantom.onConsoleMessage = function(msg){ console.log(msg); }

page.onResourceError = function(resourceError) {
        page.reason = resourceError.errorString;
        page.reason_url = resourceError.url;
};

page.open(input.address, function(status){ 

    if (status !== 'success'){
        console.log("url: "+page.reason_url+"reason: "+page.reason);
        phantom.exit(1)
    }

    page.onLoadFinished = function(){
        input.cookies = page.cookies;
        console.log(JSON.stringify(input));
        phantom.exit();
    };

});

data.json

代码语言:javascript
复制
{"cookies": [], "address": "https://google.com"}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-13 01:28:55

因为在页面加载之后没有进一步的说明,所以它不会做任何事情,而只是坐在那里。

page.open的回调实际上与page.onLoadFinished相同。在已经调用它之后再次设置它将不会第二次运行它,如果中间没有某种操作(站点重定向、单击、表单提交)。

尝试:

代码语言:javascript
复制
page.open(input.address, function(status){ 
    if (status !== 'success'){
        console.log("url: "+page.reason_url+"reason: "+page.reason);
        phantom.exit(1)
    }

    input.cookies = page.cookies;
    console.log(JSON.stringify(input));
    phantom.exit();
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33683557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档