我正在尝试使用 puppeteer 的 api,它基本上有一个功能可以吸引我不和谐的用户,不太熟悉 puppeteer 所以介意我缺乏解释,做了一些研究并找到了一些解决方案,例如手动安装 chromium,这样做了,运行 puppeteer 来运行无头铬仍然不走运,它提示我命令“/usr/bin/chromium-browser”需要安装 chromium snap, 我在用WSL运行这个,似乎 WSL 并不真正支持它,
const browser = await puppeteer.launch({
//only for testing
headless: true,
// for testing at - ibad
executablePath: '/usr/bin/chromium-browser',
args: [
'--no-sandbox',
'--start-maximized'
],
ignoreHTTPSErrors: true
});
这是 puppeteer 的启动代码,我在 api 响应中收到的消息:
"message": "无法启动浏览器进程!\n\n命令 '/usr/bin/chromium-browser' 需要安装 chromium snap。\n请使用以下命令安装:\n\nsnap install chromium\n\n \n\n故障排除:https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md\n", https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md%5Cn%22,,
任何帮助将不胜感激,对这个木偶师的东西很陌生,谢谢!
WSL 现在支持 Systemd(以及 Snap)。看这个社区维基答案 https://stackoverflow.com/a/73833858/11810933或者我原来的在 Ask Ubuntu 上回答 https://askubuntu.com/a/1379567/1165986有关如何启用的信息。
根据最近的 WSL 更改,特别是对于 Ubuntu 上的 Chromium,您有多种选择:
-
选项 1:根据上面的链接在 WSL 中的 Ubuntu 上启用 Systemd 和 Snap 功能。
-
选项 2:不使用 Snap 安装。看这个询问 Ubuntu 问题 https://askubuntu.com/q/1204571/1165986一些不同的方法来做到这一点。
-
选项 3:使用 Google Chrome(或其他),而不是 Chromium
我在使用 Selenium 的 Ubuntu 上使用 chromedriver 和 Google Chrome 没有任何问题。我使用 Puppeteer(WSLg 之前)已经有大约两年了,但我在 WSL2 上也能做到这一点。
如果您想使用非基于 Google Chromium 的浏览器,那么 Brave 和 Vivaldi(可能还有其他浏览器)是候选者。从之前的研究来看,IIRC 都提供网络驱动程序。
-
选项 4:在 WSL2 下使用非 Systemd 发行版。我已经能够在 WSL2 下的 Artix Linux 上成功安装和运行 Chromium/chromedriver,并将其与 Selenium 一起使用。这大概就是not然而,这是一个对新手友好的任务,但我会把它作为一个可能性 anyway.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)