2
var page = require("webpage").create(),

     loginPage = "https://subscriber.hoovers.com/H/login/login.html";

page.onConsoleMessage = function (msg) {

     console.log(msg);
};

page.open(loginPage);

page.onLoadFinished = function (status) {

    var url = page.url;
    console.log("Status:  " + status);
    console.log("Loaded:  " + url);
    pageload(url);
    page.render('url.png');

}

function pageload(url) {

    if (url == loginPage) {

        console.log("From loginPage");

        page.evaluate(function () {

            console.log("From pageload");

        });
    }
}
4

3 に答える 3

-1

あいまいな理由 (WebKit または PhantomJs のバグ) により、console.log は page.evaluate 内で機能しません。

console.info、console.warn、または console.error を使用するには、コードを変更する必要があります。

var page = require("webpage").create();
var loginPage = "https://subscriber.hoovers.com/H/login/login.html";

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

page.open(loginPage);

page.onLoadFinished = function (status) {

    var url = page.url;
    console.log("Status:  " + status);
    console.log("Loaded:  " + url);
    pageload(url);
    page.render('url.png');
    phantom.exit(0);
}

function pageload(url) {

    if (url == loginPage) {
        console.log("From loginPage");
        page.evaluate(function () {
            console.info("From pageload");
        });
    }
}
于 2013-06-03T07:46:52.437 に答える
-1

phantomjs の設定で JavaScript の実行が無効にされていないことを確認してください

page.settings.javascriptEnabled = true;
于 2014-07-10T07:14:28.457 に答える