سؤال

أنا أحاول أن تفعل اختبار بسيط من مسج مع فانتومجس:

var url = 'http://www.google.com/';
var page = require('webpage').create();
page.open(url, function () {
    page.injectJs('jquery.min.js');
    page.evaluate(function () {
        console.log($('title').text());
    });
    phantom.exit()
});

يجب أن يطبع هذا العنوان ، ولكن بدلا من ذلك لا يحدث شيء.يمكن لأحد أن يقول لي ما هو الخطأ?

هل كانت مفيدة؟

المحلول

page.evaluate ينفذ وظيفتك في سياق الصفحة ، وليس في سياق فانتومجس.لذلك ، كل ما يستخدم console ستتم طباعتها (وستكون مرئية) فقط لمثيل صفحة الويب الحالي.

لإعادة توجيه console الإخراج ، يجب عليك استخدام onConsoleMessage رد الاتصال.

var url = 'http://www.google.com/';
var page = require('webpage').create();

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

page.open(url, function () {
    page.injectJs('jquery.min.js');
    page.evaluate(function () {
        console.log($('title').text());
    });
    phantom.exit()
});

المرجع: علىالرسالة

نصائح أخرى

يبدو أنك في عداد المفقودين # لاستهداف العنصر بواسطة id:

console.log($('#title').text());
// -----       ^ add here

إذا title هو فئة ثم يمكنك استخدام .:

console.log($('.title').text());
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top