Search code examples
appium

how to check whether appium driver is live


I have a scenario where after I disable a button, I check for the data persistence in the database. It takes some time to persist data in the database( roughly 3 mins). My tests are started through sauce labs so after 90 seconds the time out and my session is closed. I do take screenshots of the tests at the tearDown Method. when data persistence takes more than 90 seconds the screenshots method is failing. I want to take screenshots only when the driver is alive, how can I check for it?

  
                    takeAllureScreenShot();
              
}```

Solution

  • You can increase how long Sauce Labs waits before shutting down a session by configuring the idleTimeout desired capability (docs for which are here).

    By default, this is set to 90 seconds; It sounds like you should increase it to something like 200 seconds.

    Assuming you're using Java and a Selenium 3 session with vendor name-spacing, you could do that like so:

        // This is a new capabilities object to hold the nested vendor-specific options
        MutableCapabilities sauceOptions = new MutableCapabilities();
        sauceOptions.setCapability("idleTimeout", 200);
    
        // assuming your desired capabilities are called 'capabilities'
        capabilities.setCapability("sauce:options", sauceOptions);
    

    (If you just wanted to check that the session was still alive, you could do so by doing something "trivial" like checking the page title inside an try/catch block. If an exception is thrown, the session is over! If you get a response, it's not).