Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to close a browser on a selenium RC server which lost it's client

suppose a client starts a selenium session on an RC server, but at the middle of the session the client "went away". The browser will remain open, and eventually, after enough such dropped sessions, there will be enough "orphan" browsers to slow down the computer.

  • How can I make sure those browsers are closed?
  • Why isn't there a "keep-alive" part in the protocol to make sure the client is still responsive and if not kill the session?
  • like image 935
    olamundo Avatar asked Aug 23 '09 05:08

    olamundo


    People also ask

    Which client libraries come with Selenium RC?

    Client libraries that provide an interface between each one of the programming languages (Java, C#, Perl, Python and PHP) and the Selenium-RC Server.

    What is RC in Selenium?

    Selenium RC is a key part in Selenium. It is a framework for testing that allows testers and developers to design test scripts in multiple languages to automate frontend UI test cases. It has a client library and a server that starts and quits the browser sessions by default.


    1 Answers

    Any browser instance has a session_id you can store. Python example:

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

    So, if you store these sessionId in a file when your test starts and then remove it when your tests ends, you'll have a log file with sessions for tests that didn't end up properly.

    Now using cron, or any regular execution, you can read that file, iterate over the sessionIds stored in it and open the following url (using a browser or even an http library for your programing language):

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

    That should do the trick.

    Edit: I found this question so interesting that created a post in my blog about the solution. If you're a python guy you'll find it interesting: http://www.santiycr.com.ar/djangosite/blog/posts/2009/aug/25/close-remaining-browsers-from-selenium-rc

    like image 154
    Santi Avatar answered Sep 21 '22 15:09

    Santi