我正在使用伪造者访问网站并单击链接。不幸的是,我无法单击该链接进行工作。这是一个最小的无效示例:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({headless:false,});
const page = await browser.newPage();
page.setViewport({ width: 1600, height: 900 });
await page.goto('https://dl.acm.org/doi/proceedings/10.1145/3337932');
let arrMainLinks = await page.$$('.issue-item__title');
for(let i = 0; i < arrMainLinks.length; ++i)
{
await page.waitForSelector('.issue-item__title a', {waitUntil: 'networkidle2'});
const x = arrMainLinks[i];
await x.hover();
await x.click();
await page.waitForNavigation({waitUntil: 'networkidle0'});
// do things
await page.goBack();
await page.waitForSelector('body', {waitUntil: 'networkidle2'});
arrMainLinks = await page.$$('.issue-item__title a')
}
})();
我尝试过的事情:
Promise.all
技巧page.eval(x => x.click(), x)
waitFor(20000)
,然后点击如何才能使它正常工作,只需单击链接?
答案 0 :(得分:0)
您需要更改选择器:
let arrMainLinks = await page.$$('.issue-item__title a');
问题所在的方式是单击h2
元素,然后将其更改为a
元素。