繁体   English   中英

Node.js:page.click() 在 page.evaluate 之外不起作用

[英]Node.js: page.click() does not work outside of page.evaluate

我正在尝试触发元素上的点击事件,但如果我不在 page.evaluate 中使用它,则不会触发点击。

所以,这有效

await page.evaluate(async () => {
 $('#myExport').click();
});

但是,这不起作用

await page.click('#myExport')

我是 Node.js 的新手,有任何帮助

1)澄清这两种方法之间的区别

2) 什么时候应该优先选择一个真的很棒。

3) 为什么点击在 page.evaluate 内工作而不是其他方式

谢谢。

评估 function 将执行浏览器上下文中选择器上定义的click() function。 evaluate的工作方式与有人打开浏览器控制台并键入命令的方式相同。

人偶page.click() function 会将鼠标移动到提供的选择器的中心,然后执行mouse.down()mouse.up()操作。 请记住,如果找不到匹配的选择器, page.click()将抛出错误,如果它必须滚动页面,它将触发导航,因此它可能会出现意外行为。

我希望您可以使用以下代码解决问题。

await Promise.all([
  page.waitForNavigation(waitOptions),
  page.click(selector, clickOptions),
]);

可以在 api 文档中收集更多信息:

puppeteer 的评估如何运作

page.click() 是如何工作的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM