Javascript 赋值后变量中未定义的变量
我目前正在努力获取变量名中定义的变量索引,它每次都返回undefined,而它不应该返回undefined。我知道我是一个异步函数,但这种情况很奇怪,我无法让它工作 我有以下资料:Javascript 赋值后变量中未定义的变量,javascript,node.js,puppeteer,Javascript,Node.js,Puppeteer,我目前正在努力获取变量名中定义的变量索引,它每次都返回undefined,而它不应该返回undefined。我知道我是一个异步函数,但这种情况很奇怪,我无法让它工作 我有以下资料: const puppeteer = require('puppeteer'); (async function main() { try { for (var index = 1; index < 20; index++) { console.log(inde
const puppeteer = require('puppeteer');
(async function main() {
try {
for (var index = 1; index < 20; index++) {
console.log(index)
const browser = await puppeteer.launch();
const [page] = await browser.pages();
await page.goto(`MYSITE`);
var name = await page.evaluate(() => {
return document.querySelector(`#itembanking-list > tbody > tr:nth-child(${index}) > td:nth-child(2)`).innerText;
})
await browser.close();
}
} catch (err) {
console.error(err);
}
})();
如何获取name中定义的变量索引?您应该在evaluate中将索引变量作为第二个参数传递,并在callback中处理它
await page.evaluate(index => {...code}, index)
你怎么知道它是未定义的?您是否在实际页面上尝试了该查询选择器?可能是选择器不正确,它是正确的。我知道它是未定义的,因为当我运行以下代码时,它返回我“错误:评估失败:引用错误:未定义索引”页内评估函数可能重复您无法访问变量,但实际的页变量。如果要使用变量,应将其传递给评估函数,如此等待页。评估索引有关详细信息,请参阅重复问题
await page.evaluate(index => {...code}, index)