【问题标题】:Problem when trying to click with puppeter尝试使用 puppeteer 点击时出现问题
【发布时间】:2020-09-15 13:26:22
【问题描述】:

正如标题所说,我正在创建一个应用程序来使用 puppeteer 自动化我的 instagram,然后我来到了这个按钮,但我无法点击。

我尝试过使用 page.waitForSelector 和 page.click,但没有任何效果...我最后一次尝试是:

await page.waitForNavigation({ waitUntil: 'networkidle0'});

await page.evaluate(() => { document.querySelector('a.-nal3').click(); });

我想点击的地方的图片:

我错过了什么吗?

【问题讨论】:

  • await page.waitForNavigation() 可能会阻止点击。试试await Promise.all([page.waitForNavigation({ waitUntil: 'networkidle0'}), page.evaluate(() => { document.querySelector('a.-nal3').click(); })])await Promise.all([page.waitForNavigation({ waitUntil: 'networkidle0'}), elementHandle.click()])
  • 您能否详细说明您是否收到任何错误,或者在单击元素后没有任何反应?如果是最后一个,请确保您要查找的元素是唯一的,因为有时它可能是类似的隐藏元素。另外,尝试查找并单击不是a 标记,而是其父标记。

标签: javascript instagram puppeteer


【解决方案1】:

您不应尝试在页面上下文中单击,而应在 puppeteer 上下文中单击。您可以使用waitForSelector 获取元素本身的句柄,然后使用<elementHandle>.click 点击它

const [link] = await page.waitForSelector('a.-na13');
if (link) {
    await link.click();
}

【讨论】:

  • 一开始我什至以为会是这个问题...但是我已经测试了一个类似的命令,我测试了你的并且遇到了同样的问题。
  • 如果上面的代码不起作用,那么css查询一定是失败的。你试过用 xpath 代替 css 选择器吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-15
  • 1970-01-01
相关资源
最近更新 更多