如何关闭丢失了它的客户端的selenium RC服务器上的浏览器

ola*_*ndo 8 browser session selenium selenium-rc

假设客户端在RC服务器上启动selenium会话,但在会话中间客户端"离开".浏览器将保持打开状态,并且最终,在足够的这种丢弃的会话之后,将有足够的"孤儿"浏览器来减慢计算机的速度.

  • 如何确保这些浏览器已关闭?
  • 为什么协议中没有"保持活动"部分以确保客户端仍然响应,如果没有杀死会话?
  • San*_*nti 14

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

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

    因此,如果您在测试开始时将这些sessionId存储在文件中,然后在测试结束时将其删除,那么您将拥有一个日志文件,其中的测试会话未正确结束.

    现在使用cron或任何常规执行,您可以读取该文件,遍历存储在其中的sessionId并打开以下URL(使用浏览器甚至是用于编程语言的http库):

    HTTP://本地主机:4444 /硒 - 服务器/驱动器/的sessionId = THE-SESSION-ID&CMD = testComplete

    这应该够了吧.

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