Javascript 木偶演员在MacOS工作,但不在Windows中工作
我制作了一个节点脚本,它在MacOS上使用了Puppeter。脚本只是启动木偶演员并拦截请求 以下是使用木偶演员的部分代码:Javascript 木偶演员在MacOS工作,但不在Windows中工作,javascript,node.js,windows,macos,puppeteer,Javascript,Node.js,Windows,Macos,Puppeteer,我制作了一个节点脚本,它在MacOS上使用了Puppeter。脚本只是启动木偶演员并拦截请求 以下是使用木偶演员的部分代码: const getAllUrls = async (rootUrl) => { const puppeteer = require('puppeteer'); const urls = []; await puppeteer.launch().then(async browser => { const page = aw
const getAllUrls = async (rootUrl) => {
const puppeteer = require('puppeteer');
const urls = [];
await puppeteer.launch().then(async browser => {
const page = await browser.newPage();
await page.setRequestInterception(true);
page.on('request', interceptedRequest => {
if (isRelevantUrl(interceptedRequest.url())) {
urls.push(interceptedRequest.url());
interceptedRequest.abort();
} else {
interceptedRequest.continue();
}
});
await page.goto(rootUrl);
await browser.close()
})
.catch(err => console.log(err));
return urls;
}
在MacOS上运行脚本时,脚本运行得非常好。但是,当我尝试在我的办公室中使用Windows运行它时,我收到以下错误消息:
错误:无法启动chrome
故障排除:
立刻
(C:\Users……。\node\u modules\puppeter\lib\Launcher.js:339:14)位于
ChildProcess.helper.addEventListener
(C:\Users……。\node\u modules\puppeter\lib\Launcher.js:329:60)
我尝试了Puppeter疑难解答推荐的以下配置:
const browser = await puppeteer.launch({
ignoreDefaultArgs: ['--disable-extensions'],
});
但这没用
我已经硬拷贝了脚本(当然没有节点模块),并将其粘贴到我办公室的项目上。然后做了npm i
。
脚本中使用的其他包在Windows上也运行良好
请提供帮助。您是否尝试在windows计算机上手动安装Puppeter?我想我去年在将mac开发的代码移植到windows时遇到了类似的情况。@tamak手动安装是什么意思?安装它而不做npm我木偶?怎么用?我不认为这能解决我的问题…你的代码在我的Mac上运行正常,但我做了一些更改。我创建了一个伪函数
isRelevantUrl
,它返回对true
和false
的任何调用(我已经尝试了这两种方法)。我真的怀疑这个函数-isRelevantUrl
。你能发布这个消息来源吗?只需再次尝试部署代码package.json
,然后再次尝试npm安装
。还可以尝试在Mac上对wait browser.close()
@edimanto添加注释,因为它工作正常。问题出在Windows上。我甚至试过只做puppeter.launch()
,但我得到了同样的错误isRelevantUrl()
只需返回true或false,这取决于url是否有特定的子字符串,因此它不是真正的“相关”lol。我觉得在Windows上运行Chromium path时可能有问题。。。