无法在http:// localhost

时间:2018-09-17 09:40:00

标签: c# .net selenium selenium-chromedriver windows-server

我想寻求帮助,因为我在没有界面的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选项)

5 个答案:

答案 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调用。
可能出现的问题可能是:

  • 您无法执行该过程,因为无法访问该可执行文件
    • 可执行文件不存在
    • 错误的权限
  • 某些配置阻止您成功执行api调用并无法到达http://localhost:60623/
    • 代理设置(添加NO_PROXY以外的localhost环境变量可能会有所帮助)
    • 防火墙设置
    • 端口已使用

答案 4 :(得分:0)

正在运行 VPN 客户端?为了完全隔离(对于业余爱好者),不能直接访问作为 Ip 和/或主机名的环回(除非客户端提供排除 localhost 或 127.0.0.1(及其 Ipv6 等效项)的可能性) - 曾经让我感到害怕当我仅仅因为我的 Cyber​​ghost 客户端仍在运行而无法让驱动程序工作时就像疯了一样,但回到最可能的原因:

特别是在大量使用端口时,可能还有大量驱动程序,手动管理端口或至少手动检查/设置驱动程序服务的端口会有所帮助。

我是这样做的:我得到所有当前活动的 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));