将JavaScript注入Puppeteer的最佳方法是什么?

时间:2018-05-08 23:10:10

标签: javascript node.js puppeteer

我正在使用Puppeteer生成PDF。在大型SPA中,代码引用window is not defined时会有很多次,但window通常是我在实践中看到的。

如果我在Puppeteer的上下文中运行代码,那么它应该没问题,因为无头浏览器应该有puppeteer.setContent('<script>...</script>')属性。

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

有没有更好的方法在Puppeteer中执行JavaScript?也许使用像ggplotly这样的东西?

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

1 个答案:

答案 0 :(得分:1)

如果我正确阅读了您的问题,您可能想要使用page.evaluate;

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