google-chrome-devtools - 如何停止Puppeteer中的所有JS脚本

标签 google-chrome-devtools puppeteer

我希望能够在页面加载后停止任何脚本在puppeteer中运行。这样做的原因是停止轮播图像和延迟加载图像,并实质上使页面具有尽可能静态的行为,以启用图像未更改的屏幕截图等。

通过执行page.evaluate('debugger;'),可以暂停整个脚本,但这不能让您继续进行屏幕截图,因为evaluate函数只有在退出调试器后才会退出(如果gui被启用)

最佳答案

如果您想在页面加载后禁用JavaScript,则可以使用 debugger :

await page.evaluate(() => {
  debugger;
});

使用调试器后,我可以截取屏幕截图。

或者,您可以将每个原始节点替换为其克隆,以删除附加到每个元素的事件:
await page.evaluate(() => {
  document.querySelectorAll('*').forEach(element => {
    element.parentNode.replaceChild(element.cloneNode(true), element);
  });
});

您也可以在类似于上述循环的循环中使用 removeEventListener() 删除附加到节点的特定事件。

否则,如果可以在页面加载之前禁用JavaScript,则可以在导航到页面之前使用 page.setJavaScriptEnabled() :
await page.setJavaScriptEnabled(false);

关于google-chrome-devtools - 如何停止Puppeteer中的所有JS脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51897899/

相关文章:

web - 在 Web 浏览器中模拟 GPS 定位路线

javascript - Puppeteer 如何检查页面是否已导航并在未导航时执行任务

javascript - Puppeteer 的 page.click() 正在处理一些链接而不是其他链接

javascript - 如何使用 .includes() 找到数字范围内的任何数字

firebug - 如何检查 Android 浏览器中的元素?

angular - 如何将 CSS 样式更改保存到 Chrome 开发人员工具中的 ANGULAR 2.0 组件表单?

javascript - 加载共享库时出错 : libgbm. so.1:无法打开共享对象文件:AWS EC2 实例上 Nodejs 中的 Puppeteer

node.js - 在 Chromium 中传递 "Your connection is not private"页面

google-chrome-devtools - 如何截取溢出 :auto in Chrome Dev Tools? 的 DOM 节点的屏幕截图

javascript - 返回一个函数 Chrome Dev 工具