使用 puppeteer js 我循环遍历所有元素,如下所示:
const getAllElements = await page.$$('._1Nk0C');
for (let [i, link] of getAllElements.entries()) {
await link.hover();
await link.screenshot({path: `example${i}.png`});
}
元素内部还有另一个元素,其标题为“download”。就像这样:
<a title="Download photo" href="https://example.com/df.jpg/download?force=true" rel="nofollow" download="" target="_blank" class="_1QwHQ"></a>
我需要获取该元素,以便可以单击它。 我试过这个:
for (let [i, link] of getAllElements.entries()) {
await link.hover();
await link.screenshot({path: `example${i}.png`});
const download = await page.evaluate(() => [...document.querySelector('a[title="Download photo"]')])
console.log(download);
}
这给了我一个错误:
UnhandledPromiseRejectionWarning: Error: Evaluation failed: TypeError: document.querySelector is not a function or its return value is not iterable
我该如何获取该元素?
最佳答案
您可以在 link
变量上调用 $
:
let linkPhoto = await link.$('a[title="Download photo"]');
关于javascript - 使用 puppeteer js 按标题查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59867393/