Javascript PhantomJS-page.evaluate不是一个函数
我的代码是这样开始的。console.log“hello3”已打印,但随后它显示错误: TypeError:page.evaluate不是函数 在/home/someone/server123.js:58:11 在 在进程中。_tick回调(内部/process/next_tick.js:188:7) 为什么会出现这种情况 节点版本:v8.6.0 Npm版本:5.3.0Javascript PhantomJS-page.evaluate不是一个函数,javascript,node.js,phantomjs,Javascript,Node.js,Phantomjs,我的代码是这样开始的。console.log“hello3”已打印,但随后它显示错误: TypeError:page.evaluate不是函数 在/home/someone/server123.js:58:11 在 在进程中。_tick回调(内部/process/next_tick.js:188:7) 为什么会出现这种情况 节点版本:v8.6.0 Npm版本:5.3.0 幻影版本:phantom@4.0.5您遇到的问题是page.open()不返回页面,而是返回状态。因此,传递给下一个then(
幻影版本:phantom@4.0.5您遇到的问题是
page.open()
不返回页面,而是返回状态。因此,传递给下一个then()
的值是状态,您尝试对其调用evaluate。当然,这是行不通的
他们处理这一问题的方式是在then()
链外部有一个页面变量,他们可以在每个then()
链内部访问该变量。你几乎是在用\u page=page
如果在函数外部定义了\u page
,则应该能够调用\u page.evaluate()
,而不是在open()
的返回值上调用它
您遇到的问题是,
page.open()
不返回页面,而是返回状态。因此,传递给下一个then()
的值是状态,您尝试对其调用evaluate。当然,这是行不通的
他们处理这一问题的方式是在then()
链外部有一个页面变量,他们可以在每个then()
链内部访问该变量。你几乎是在用\u page=page
如果在函数外部定义了\u page
,则应该能够调用\u page.evaluate()
,而不是在open()
的返回值上调用它
是的,就是这样!谢谢你!我的问题解决了,但现在,在_page.evaluate(function(){我无法打印任何内容,似乎有任何错误…我试图抛出一个错误,但没有成功。知道为什么吗?是的,这有点棘手-您在
evaluate()中运行的代码
是在您正在评估的页面的上下文中运行的。这里有一个关于这个问题的好线索:@Mark_Mpage.set('paperSize',{format'A4',orientation'rapital');
page.set
不是一个函数任何想法吗?是的,就是它!谢谢!我的问题已经解决了,但现在,在_page.evaluate(function()){我无法打印任何内容,似乎有任何错误……我试图抛出一个错误,但没有成功。知道为什么吗?是的,这有点棘手-您在evaluate()
中运行的代码是在您正在评估的页面的上下文中运行的。这里有一个关于这个问题的好线索:@Mark\Mpage.set('paperSize',{format:'A4',orientation:'Grait'});
page.set
不是一个函数吗?
var phantom = require('phantom');
phantom.create()
.then(function (ph) {
_ph = ph;
return ph.createPage();
})
.then(function(page) {
_page = page;
url = "http://www.aeiou.pt";
return page.open(url);
})
.then(function(page) {
console.log("hello3");
page.evaluate(function () {
var phantom = require('phantom');
var _page;
phantom.create()
.then(function (ph) {
_ph = ph;
return ph.createPage();
})
.then(function(page) {
_page = page;
url = "http://www.aeiou.pt";
return page.open(url);
})
.then(function(status) {
// check status for errors here
console.log("hello3");
_page.evaluate(function () {