jsdom 的 getVirtualConsole 例子

jsdom's getVirtualConsole example

我正在尝试 console.log("hello world") 来自 jsdomgetVirtualConsole 函数。我没有收到任何回复。

var jsdom = require("jsdom")
var window = jsdom.jsdom('<html><body><script type="text/javascript">console.log(\"hello world\")</script></body></body>').defaultView;
jsdom.getVirtualConsole(window).sendTo(console);

这基本上是直接从the documentation.

拉过来的

问题是您的脚本 运行 在您获得虚拟控制台之前。如果稍微延迟一下,您会看到输出。

然而,这显然是一个非常有问题的情况。所以我们在 5.3.0 中添加了 a new API,允许您提前创建一个虚拟控制台,并将其传入。因此,您可以做到

"use strict";
const jsdom = require("jsdom");

const virtualConsole = jsdom.createVirtualConsole();
virtualConsole.sendTo(console);

const window = jsdom.jsdom(`
    <!DOCTYPE html>
    <script>console.log("hello world");</script>`,
    { virtualConsole }).defaultView;