Javascript ES6这可以';I don’我看不见全班同学
我有以下课程Javascript ES6这可以';I don’我看不见全班同学,javascript,ecmascript-6,nightmare,Javascript,Ecmascript 6,Nightmare,我有以下课程 class Foo { baz = 42 url = 'www.foo.bar' foo(){ console.log('Hello from foo') return 'baz' } run() { let nightmare = Nightmare() var _this = this nightmare .on('console', (log, msg) => { console.log
class Foo {
baz = 42
url = 'www.foo.bar'
foo(){
console.log('Hello from foo')
return 'baz'
}
run() {
let nightmare = Nightmare()
var _this = this
nightmare
.on('console', (log, msg) => {
console.log(msg)
})
.goto(this.url)
.evaluate((ctx)=>{
console.log('hello from evaluate')
ctx.foo()
return 'title'
}, _this)
.end()
.then(function(title){
console.log(title);
})
}
}
我试图将scapping划分为多个方法,但我无法找到如何从evaluate函数调用成员。我只能看见
你好,我是evaluate
看起来好像从来没有调用过foo。Afaik您无法将函数等不可序列化的数据传递到
evaluate
@Bergi有趣的是,我可以看到ctx是一个对象:{bar:42,url:'.'''''},但我无法对其调用方法。是的,它是一个没有任何方法的对象。可序列化的部分被传输了,功能没有被传输。