爬虫伪造浏览器环境之jsdom(二)
摘要:jsdom关于virtualconsole的一点问题
下载的为15.2.1的jsdom,其中的virtulconsole实测没有用,应该是bug,但是下载以前的版本就可以用
测试代码如下:
const jsdom = require("jsdom");
const {JSDOM} = jsdom;
var virtualConsole = new jsdom.VirtualConsole();
virtualConsole.on("log", function (message) {
console.log("console.log called ->", message);
});
virtualConsole.sendTo(console);
const dom = new JSDOM(`<body>
<script>console.log("1")</script>
</body>`,{runScripts:"dangerously"},{virtualConsole});
//注意{runScripts:"dangerously"}必须在vitualConsole前面,不然console.log("1")是不会运行的。
运行结果:
版本为9.0.0的jsdom,其中的virtulconsole表现正常
测试代码如下:
var jsdom = require("jsdom");
const consola = require('consola')
var virtualConsole = jsdom.createVirtualConsole();
virtualConsole.sendTo(consola);
virtualConsole.on("log", function (message) {
console.log("console.log called ->", message);
});
var document = jsdom.jsdom(`<body>
<script>console.log("1")</script>
</body>`, {
virtualConsole: virtualConsole
});
运行结果:
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。