我试图用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()
});
这应该打印出标题,但没有任何反应。有人能告诉我什么是错的吗?
答案 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()
});
答案 1 :(得分:0)
好像你错过了#
来id
定位元素:
console.log($('#title').text());
// ----- ^ add here
如果title
是一个类,那么您可以使用.
:
console.log($('.title').text());