如何使用jQuery与phantomjs

时间:2014-04-11 09:27:05

标签: jquery phantomjs

我试图用phantomjs对jQuery进行简单的测试:

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()
});

这应该打印出标题,但没有任何反应。有人能告诉我什么是错的吗?

2 个答案:

答案 0 :(得分:2)

page.evaluate在页面上下文中执行您的函数,而不是在PhantomJS上下文中。因此,只有当前的Web页面实例才会打印(并且可见)使用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()
});

参考:onConsoleMessage

答案 1 :(得分:0)

好像你错过了#id定位元素:

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

如果title是一个类,那么您可以使用.

console.log($('.title').text());