我想寻求帮助,因为我在没有界面的Windows服务器上运行selenium时遇到以下错误:
无法在http://localhost:49906/上启动驱动程序服务 OpenQA.Selenium.DriverService.Start()在 OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(Command commandToExecute) OpenQA.Selenium.Remote.RemoteWebDriver.Execute(字符串 driverCommandToExecute,Dictionary的2个参数)位于 OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities 所需的能力) OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor,ICapabilitiesdesireCapabilities)位于 OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeDriverService服务, ChromeOptions选项,TimeSpan命令超时)位于 OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeOptions选项)
答案 0 :(得分:0)
使用Selenium打开的浏览器需要在会话0(Windows中的GUI界面)中运行。您提供的错误很可能是对此问题的引用。
您可以尝试以无头模式运行浏览器来解决Session 0问题,因为它不需要在UI中呈现。
操作方法您可以使用此链接Headless Chrome
进行检查答案 1 :(得分:0)
.Net Core MSTest项目解决方案遇到相同的问题。而是使用.Net Framework(单元测试)项目解决方案,对于我来说,在这种情况下,Chrome驱动程序实例正常工作。 New Unit Test Project (.Net Framework)
答案 2 :(得分:0)
将我的目标框架更改为.NET Core 2.1(以前设置为.net Core 3.0) 现在可以正常工作了。
答案 3 :(得分:0)
我写here时:
服务启动时,仅执行驱动程序服务的过程以及对该服务的api调用。
可能出现的问题可能是:
NO_PROXY
以外的localhost
环境变量可能会有所帮助)答案 4 :(得分:0)
正在运行 VPN 客户端?为了完全隔离(对于业余爱好者),不能直接访问作为 Ip 和/或主机名的环回(除非客户端提供排除 localhost 或 127.0.0.1(及其 Ipv6 等效项)的可能性) - 曾经让我感到害怕当我仅仅因为我的 Cyberghost 客户端仍在运行而无法让驱动程序工作时就像疯了一样,但回到最可能的原因:
特别是在大量使用端口时,可能还有大量驱动程序,手动管理端口或至少手动检查/设置驱动程序服务的端口会有所帮助。
我是这样做的:我得到所有当前活动的 TcpConnections(本地端点)。我从给定范围内为驱动程序服务创建一个随机端口,直到当前未使用分配的端口。
var ipGlobalProperties = IPGlobalProperties.GetIPGlobalProperties();
var tcpConnInfoArray = ipGlobalProperties.GetActiveTcpConnections();
do
{
driverService.Port = Random.Next(29999,65535);
} while (tcpConnInfoArray.Any(d => d.LocalEndPoint.Port == driverService.Port));