gpt4 book ai didi

javascript - PhantomJS - page.evaluate 不是一个函数

转载 作者:行者123 更新时间:2023-12-01 02:53:49 25 4
gpt4 key购买 nike

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 () {

我的代码是这样开始的。 console.log“hello3”被打印,但随后,它给了我错误:

TypeError: page.evaluate is not a function at /home/someone/server123.js:58:11 at at process._tickCallback (internal/process/next_tick.js:188:7)

为什么会出现这种情况?

Node 版本:v8.6.0

Npm 版本:5.3.0

幻影版本:phantom@4.0.5

最佳答案

您遇到的问题是 page.open() 不返回页面 - 它返回状态。因此,传递给下一个 then() 的值是状态,您尝试对其调用评估。当然,这是行不通的。

他们在example中处理这个问题的方式在 then() 链之外有一个页面变量,可以在每个 then() 内部访问该变量。您几乎可以使用 _page = page; 来完成此操作。如果 _page 是在函数外部定义的,您应该能够调用 _page.evaluate()而不是在 open() 的返回值上调用它。

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 () {

关于javascript - PhantomJS - page.evaluate 不是一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46834339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com