RemoteWebDriver无法在45000毫秒内绑定到锁定端口7054

本文关键字:锁定 7054 绑定 45000毫 RemoteWebDriver | 更新日期: 2023-09-27 18:02:17

我使用WebDriver的. net绑定通过Grid2并发运行测试。单独运行测试没有问题,但是在通过网格运行多个测试时,偶尔会出现以下错误,一旦出现错误,通常会由于相同的原因导致多个测试失败:

无法在45000毫秒内绑定到锁定端口7054版本号:'2.29.0',修订号:'58258c3',时间:'2013-01-17 22:46:35'系统信息:os.name: 'Windows Server 2008 R2', os.name: 'Windows Server 2008 R2'。弓:"x86",操作系统。版本:'6.1',java。version: '1.7.0_11'驱动信息:司机。版本:FirefoxDriver

我们已经跟踪了问题的来源,直到我们创建RemoteWebDriver实例的地方,它看起来像:

            var desiredCapabilites = new DesiredCapabilities();
            desiredCapabilites.SetCapability(CapabilityType.BrowserName, "firefox");
            desiredCapabilites.SetCapability(CapabilityType.Platform, new Platform(PlatformType.Windows));
            desiredCapabilites.SetCapability(CapabilityType.Version, "14.0.1");
                try { _driver = new RemoteWebDriver(new Uri("http://qwautomation:4444/wd/hub"), desiredCapabilites, TimeSpan.FromSeconds(180.0)); }
                catch (Exception ex) { Notes.Add("AUTOMATION ERROR: This error originates from MasterSetup.cs (line 47)"); Notes.Add("AUTOMATION ERROR: " + ex.Message); Exception("AUTOMATION ERROR: This error originates from MasterSetup.cs (line 47)"); }

其中,qwautomation是我们的Grid Hub所在的机器。我的假设是Hub正在将测试分派到一个端口上已经包含FireFox实例的节点,或者会话没有被JVM正确地处理(因为我可以在节点机器的临时文件夹中看到带有WebDriver会话id的文件夹)。我已经为节点和集线器编写了配置文件,我将在下面发布。如果测试不能绑定到FireFox端口,我不知道是否有办法将测试"排队"。

中心
{
        "port": 4444,
        "newSessionWaitTimeout": 30000,
        "nodePolling": 5000,
        "cleanUpCycle": 5000,
        "timeout": 300000,
        "browserTimeout": 0,
        "maxSession": 1
}

节点
{
    "capabilities":
            [
                {
                    "browserName":"firefox",
                    "maxInstances":1                
                }
            ],
    "configuration":
            {
                    "cleanUpCycle":2000,
                    "timeout":180000,
                    "maxSession":5,
                    "hubPort":4444,
                    "hubHost":"qwautomation"
            }
}

编辑:我已经从DesiredCapabilities对象中删除了"版本"功能,并且在几次测试运行后没有看到错误表面。我不知道这是否是一个实际的解决方案,但它似乎至少降低了异常的风险。

RemoteWebDriver无法在45000毫秒内绑定到锁定端口7054

我发现重新启动服务器通常可以解决这个问题。如果问题仍然存在,请尝试通过网格运行更少的连续测试,或者增加Selenium节点上的内存容量。

我已经遇到这个错误很多次了,我发现我实际上是造成这个错误的原因。

我通常从我的开发计算机运行远程桌面到我的vm,以观察在我的网格上发生的测试。

当我在本地桌面使用Alt-Tab和Shift-Alt-Tab切换窗口时,我已经在Selenium启动FireFox时精确地选择了VM,并且由于我按住了键而无意中导致FireFox以安全模式启动。

当这种情况发生时,Firefox等待确认您确实想要以安全模式启动,并且永远不会完全打开。在您确认之前,所有后续打开FireFox的请求都将失败。

当错误发生时,我习惯于停止测试并重新启动所有从测试生成器开始的东西,直到有一天我首先开始vm,注意到对话框并开始挖掘对话框的原因。就在那时,我意识到是我导致火狐以这种方式开始的。现在我更小心了,再也没有这个问题了。