【问题标题】:What's the best way to inject JavaScript into Puppeteer?将 JavaScript 注入 Puppeteer 的最佳方法是什么?
【发布时间】:2018-05-10 17:01:27
【问题描述】:

我正在使用 Puppeteer 生成 PDF。在大型 SPA 中,代码引用window 的次数也不少,但我在实践中看到的往往是window is not defined

如果我在 Puppeteer 的上下文中运行代码,那么应该没问题,因为无头浏览器应该有一个 window 属性。

我已经看到将 SPA 放在单独的端口并打开该端口的方法,但我不确定这是否是解决问题的最佳方法,因为我已经知道我想要运行的 JavaScript 并且我只是希望它在 Puppeteer 的上下文中执行。

有没有更好的方法在 Puppeteer 中执行 JavaScript?也许使用puppeteer.setContent('<script>...</script>')之类的东西?

如果单独的端口选项是我拥有的最好的选项,那么也许我会默认使用它。

【问题讨论】:

    标签: javascript node.js puppeteer


    【解决方案1】:

    如果我没看错你的问题,你可能想使用page.evaluate;

    page.evaluate(function(){
        const someVal = window._whatever.factory.producer.getContent()[1].node.value
        window._whatever.runAnotherThing(someVal);
    });
    

    【讨论】:

      猜你喜欢
      • 2020-08-26
      • 2012-11-12
      • 2014-12-15
      • 2022-09-23
      • 2021-12-08
      • 1970-01-01
      • 2010-09-07
      • 1970-01-01
      相关资源
      最近更新 更多