gpt4 book ai didi

javascript - 如何在后续调用中重用在 casperJS 调用中填充的变量?

转载 作者:行者123 更新时间:2023-11-29 17:11:39 26 4
gpt4 key购买 nike

我在 CasperJS 脚本中遇到以下范围问题。传递给 casper.thenOpenAndEvaluate() 时,baseTargetUrl 未定义。为什么会这样,我该如何解决?

var baseTargetUrl;
.....
casper.then(function() {
baseTargetUrl = this.evaluate(function() {
return __utils__.getElementByXPath('//*[@id="wrapper"]/div[1]/a[2]')["href"];
});
console.log('logging: '+baseTargetUrl); // works
});

casper.thenOpenAndEvaluate(baseTargetUrl ,function() { //baseTargetUrl is undefined here
var test = document.querySelector('myselector');
//do other stuff

});

最佳答案

如您所知,我们无法从外部异步调用中获取变量。这看起来有点老套,但这是我目前所拥有的最好的....

var baseTargetUrl;
.....
casper.then(function() {
baseTargetUrl = this.evaluate(function() {
return __utils__.getElementByXPath('//*[@id="wrapper"]/div[1]/a[2]')["href"];
});
console.log('logging: '+baseTargetUrl); // works

this.thenOpenAndEvaluate(baseTargetUrl ,function() { // 'this' being the instance of casper
var test = document.querySelector('myselector');
//do other stuff

});
});

关于javascript - 如何在后续调用中重用在 casperJS 调用中填充的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20932947/

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