会话 [url] 不可用,并且不在最近 1000 个终止的会话中.如何解决这个问题


Session [url] not available and is not among the last 1000 terminated sessions. How to solve this?

当我尝试启动时

php behat.phar

弹出 WebDriver 火狐窗口,然后我的功能测试在第一步失败并跳过其余部分。我得到:

鉴于我在"第一.php"#FeatureContext::访问((

会话 [url] 不可用,并且不在最近 1000 个终止的会话中。

活动会话是[分机.key 51191ae0-8f6f-49d0-27b322967296]

如果我只使用 behat,测试就会通过。只有当我尝试使用硒时,才会发生这种情况。

我正在使用 MinkExtension GivenIAmOn(( 预制函数

My Behat.yml:

default:
    paths:
        features: features
        bootstrap: features/bootstrap
    extensions:
        mink_extension.phar:
            mink_loader: 'mink.phar'
            base_url: 'http://10.0.0.10/'
            goutte: ~
            selenium2:
                wd_host: 'http://localhost:4444/wd/hub'
                capabilities:
                    version: ''

My FeatureContext 扩展自 MinkContext。几天来我一直在寻找解决方案,但我无法解决这个问题。

我正在使用带有Firefox 26,selenium-server-standalone-2.42.2的Windows 7,我也尝试了较低的版本。正如我在某些问题中读到的那样,会话/"会话 ID"/url 在某些版本之前被破坏了,但现在不应该了。由于某种原因,它无法选择正确的会话。

很抱歉数据质量,我的工作场所没有互联网连接,而且受到很大限制。这就是为什么我使用.phar文件而不是使用作曲家。我不能复制粘贴文件等等。如果我必须提供更多数据,只需告诉我,我会的。

这听起来像是网格级超时问题。您应该尝试增加browserTimeoutnewSessionWaitTimeout,看看是否有帮助。

源:会话不可用,并且不在最近 1000 个终止的会话中。

网格中的超时通常应该通过webDriver.manage().timeouts()来处理,这将控制不同操作的超时方式。

浏览器超时应为:

  • 高于套接字锁定超时(45 秒(。
  • 通常高于webDriver.manage().timeouts()中使用的值,因为这种机制是"最后一道防线"。

如有任何问题,请同时检查:http://localhost:4444/wd/hub/sessions

我遇到了同样的问题,硒网格的日志是这样的:

警告 [RequestHandler.process] - 客户端已离开会话分机.key fa804448787370d0547cd517ab2badc1,正在终止 INFO [ActiveTestSessions.updateReason] - 删除了尚未分配外部密钥的会话 24f5656a-7a59-4edb-bf7b-c6a1ae59ca16,指示会话创建失败CLIENT_GONE

错误CLIENT_GONE是:

"客户端进程(您的代码(似乎已死亡或未响应我们的请求,间歇性网络问题也可能导致"。

我有一些正在排队等待的测试(5 个测试

正在等待,而其他 5 个测试正在运行(

我通过停止在网格上排队来解决这个问题。

我通过使用相同版本的硒集线器和节点来解决问题:图片:硒/集线器:3.11和图片:硒/节点铬:3.11