在此代码中,我尝试过滤掉 ElementHandle 数组的部分内容。我检查它是否有效的方法是打印最终过滤数组的长度。应该是 4,而不是 30。
const ar = await page.$$("li[class*=react-job-listing]");
const shortArray = Array.from(ar).filter(async (el)=> {
console.log((await (await el.getProperty("innerText")).jsonValue()).includes("Easy Apply"));
return (await (await el.getProperty("innerText")).jsonValue()).includes("Easy Apply");
});
//console.log((await (await ar[0].getProperty("innerText")).jsonValue()).includes("Easy Apply"));
console.log(shortArray.length);
console.log('hello');
不幸的是,这就是结果。
30
hello
false
false
false
false
true
false
false
true
false
false
false
false
false
false
false
false
true
false
false
false
false
false
false
false
false
false
false
false
true
false
长度的控制台日志出现在过滤器执行之前,而它应该是最后一件事。
看来脚本并没有等待等待。一定是由于多重嵌套的等待造成的。但我不知道如何解决它。
我知道这真的很难看。但由于某些原因我现在无法使用 page.evaluate 和 DOM 函数。请暂时看一下。
牛魔王的故事
相关分类