Chromium headless 在 Windows Server Core 2016 上是否可用?

8

背景

我的任务是用Chromium替换我们基于IE的打印逻辑,以便最终支持在Windows Server Core或其他支持.Net Core的操作系统上运行我们当前的服务器软件。我目前的想法是使用Chromium嵌入式框架或利用Puppeteer。我倾向于后者,因为我觉得它更容易在操作系统之间移植。

问题

最初它由于沙箱错误而无法启动,所以我添加了no-sandbox标志。现在当我尝试加载Chromium时,它会因为无法加载chrome.dll的异常而无法启动。

 PS C:\Program Files (x86)\Google\Chrome\Application>> .\chrome --headless --enable-logging --disable-gpu --screenshot="C:\screen.png" "https://www.chromestatus.com/"

出现了以下错误,请查看debug.log文件:

[0813/133208.016:ERROR:main_dll_loader_win.cc(134)] 从c:\Program Files (x86)\Google\Chrome\Application\68.0.3440.106\chrome.dll加载Chrome DLL失败:指定的模块无法找到。(0x7E)

我在互联网上搜索了一些关于这个错误的信息,但是建议的解决方法似乎并不能解决这个问题。

2个回答

4

我可以通过Chocolatey下载Chromium 72.0.3592.0版本,并且问题已经在该版本中得到解决。我使用了Server Core 2016 LTSB进行测试。

choco install chromium --pre -y

chrome --headless --disable-gpu --dump-dom --enable-logging https://www.chromestatus.com/ --no-first-run


编辑:

如果您正在尝试使用Docker windowsservercore和chromium运行Selenium测试:从容器命令行中似乎无法运行chromium chrome.exe的命令行测试。

但是,当您在容器内运行dotnet test app.csproj或dotnet vstest app.dll时,webdriver成功启动并驱动浏览器。


1
你使用过命令:choco install chromium --pre 吗? - tottomotto
@tottomotto,是的,我做了。 - J.D. Cain

3

是的。我创建了那个工单,并确认从线程上的建议测试中,版本66可以正常工作,而68会出现错误。还没有测试过67。 - LarsWA
此外,这个错误在Windows Server Core 2016 1709和原始的Windows Server 2016版本上都会出现。 - LarsWA
我可以确认Chromium 66.0.3359.181运行良好。 - Joshua Cain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接