session - 如何关闭失去客户端的 selenium RC 服务器上的浏览器

标签 session browser selenium selenium-rc

假设客户端在 RC 服务器上启动 selenium session ,但在 session 中间客户端“消失”。浏览器将保持打开状态,最终,在足够多的此类丢弃 session 之后,将会有足够的“孤立”浏览器来减慢计算机的速度。

  • 如何确保这些浏览器已关闭?
  • 为什么协议(protocol)中没有“保持事件”部分来确保客户端仍然响应,如果没有则终止 session ?
  • 最佳答案

    任何浏览器实例都有一个可以存储的 session_id。 Python 示例:

    >>> import selenium
    >>> browser = selenium.selenium("localhost",4444, "*firefox", "http://www.santiycr.com.ar")
    >>> browser.start()
    >>> browser.sessionId
    u'b4ad1f1d624e44d9af4200b26d7375cc'
    

    因此,如果您在测试开始时将这些 sessionId 存储在文件中,然后在测试结束时将其删除,那么您将获得一个日志文件,其中包含未正确结束的测试的 session 。

    现在使用 cron 或任何常规执行,您可以读取该文件,迭代存储在其中的 sessionIds 并打开以下 url(使用浏览器甚至适合您的编程语言的 http 库):

    http://localhost:4444/selenium-server/driver/?sessionId=THE-SESSION-ID&cmd=testComplete

    这应该可以解决问题。

    编辑:我发现这个问题非常有趣,因此在我的博客中创建了一篇关于该解决方案的帖子。如果你是一个 Python 爱好者,你会发现它很有趣: http://www.santiycr.com.ar/djangosite/blog/posts/2009/aug/25/close-remaining-browsers-from-selenium-rc

    关于session - 如何关闭失去客户端的 selenium RC 服务器上的浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1317844/

    相关文章:

    html - CSS 只能在一个页面上工作,而不能在另一页上工作

    javascript - 防止浏览器在刷新时自动滚动

    java - 无法点击按钮

    json - Redis 和 MongoDB;我应该如何存储大型 JSON 对象,性能问题

    PHP - session 多用户和管理员权限

    php - 在每个页面上进行检查时要使用 session 或数据库查询?

    javascript - 使用带有默认前缀的nodejs提供静态html文件

    python - 如何设置 Selenium Python WebDriver 默认超时?

    selenium - 如何在selenium webdriver中处理 "MoveTargetOutOfBoundsException"

    session - Tomcat 7 : Redirect URL in case of session timeout