【问题标题】:Session [url] not available and is not among the last 1000 terminated sessions. How to solve this?会话 [url] 不可用且不在最后 1000 个终止的会话中。如何解决这个问题?
【发布时间】:2023-03-04 03:58:01
【问题描述】:

当我尝试启动时

php behat.phar

WebDriver firefox 窗口弹出,然后我的功能测试在第一步失败并跳过其余部分。我明白了:

...

鉴于我在“first.php”#FeatureContext::visit()

会话 [url] 不可用且不在最后 1000 个终止会话中。

活动会话是[ext。密钥 51191ae0-8f6f-49d0-27b322967296]

...

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

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

我的 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: ''

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

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

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

【问题讨论】:

  • 我解决了,但还是不知道哪里出了问题。当我有机会这样做时,我通过 composer 安装了 behat 和 mink,现在它正在工作。可能有任何 .phar 文件已损坏!

标签: php session selenium selenium-webdriver behat


【解决方案1】:

这听起来像是grid-level 超时问题。您应该尝试增加browserTimeoutnewSessionWaitTimeout 看看是否有帮助。

来源:Session not available and is not among the last 1000 terminated sessions

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

browserTimeout 应该是:

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

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

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,Selenium Grid 的日志是这样的:

    WARN [RequestHandler.process] - 客户端已离开会话分机。关键 fa804448787370d0547cd517ab2badc1,终止 INFO [ActiveTestSessions.updateReason] - 删除了尚未分配外部密钥 24f5656a-7a59-4edb-bf7b-c6a1ae59ca16 的会话,表示会话创建 CLIENT_GONE

    失败

    错误CLIENT_GONE是:

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

    我有一些测试在队列中等待(5 个测试正在等待,另外 5 个正在运行)

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-11
        • 1970-01-01
        • 2020-10-03
        • 2011-05-17
        • 2012-01-28
        • 2012-03-10
        相关资源
        最近更新 更多