一尘不染

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

selenium

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

  • 如何确定那些浏览器已关闭?
  • 为什么协议中没有“保持活动”的部分来确保客户端仍在响应,如果不能终止会话,该怎么办?

阅读 240

收藏
2020-06-26

共1个答案

一尘不染

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

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

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

现在,使用cron或任何常规执行程序,您可以读取该文件,遍历存储在其中的sessionIds并打开以下网址(使用浏览器,甚至使用您编程语言的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

2020-06-26