假设客户端在 RC 服务器上启动 selenium session ,但在 session 中间客户端“消失”。浏览器将保持打开状态,最终,在足够多的此类丢弃 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/