用于PhantomJS的NodeJS API open方法不执行完整的javascript

时间:2017-11-11 12:36:24

标签: javascript node.js promise phantomjs

我正在尝试将Phantom(npm install phantom)与Node一起使用,似乎所有的javascript都没有在Page.open返回promise fullfilled之前执行。有没有办法确保所有的JavaScript都被执行。

    var args = []; // ["--platform windows:dpiawareness=0"];
    phantom.create(args).then((ph) => {
        VAR.ph = ph;
        return ph.createPage();

    }).then((page) => {
        VAR.page = page;
        return page.setting( "resourceTimeout", STATIC.phantomResourceTimeout );

    }).then(() => {
        return VAR.page.open(url);

因此,当promise从page.open返回时,它有时会返回整页,有时会返回部分执行脚本的页面。

    VAR.page.property('content');

当从中检索内容时,它不是整页?

1 个答案:

答案 0 :(得分:-1)

尝试使用以下内容:

page.onLoadFinished = function(status){
   // do whatever you want
};

我确定错误正在发生,因为您的网页尚未完成加载。使用此代码在页面加载事件之后运行您的函数以避免错误。

问候。