如何禁用弹出窗口阻止程序?

时间:2019-12-14 10:46:26

标签: javascript node.js puppeteer

当前,我面临一个问题。如果我使用headless: false访问页面,一切都很好。在headless: true期间,页面检测到启用了弹出窗口阻止程序,因此我无法继续执行剩余的操作。

这是我的浏览器配置:

const browser = await puppeteer.launch({
    args: ["--disable-popup-blocking", "--allow-popups-during-page-unload"],
    headless: true
  });
  const page = await browser.newPage();
  await page.setExtraHTTPHeaders({
    "Accept-Language": "en-GB,en-US;q=0.9,en;q=0.8"
  });
  await page.setUserAgent(
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
  );
  await page.setJavaScriptEnabled(true);
  await page.setBypassCSP(true);
  await page.goto(URL);

有什么方法可以禁用弹出窗口阻止程序吗?

1 个答案:

答案 0 :(得分:0)

仅禁用弹出窗口。我的意思是浏览器上下文与JS相同,因此请创建一个辅助方法来调用下一个脚本:

await page.evaluate(() => document.alert = window.alert = alert = () => {};)
相关问题