Tips For Running RF Over Network To Test Web App

Hi,

The Web App I run RF against was on the same server has been moved :face_vomiting: to a VM and I have to run it over the network (a busy network). This seems to have an impact and I’m getting a few stale element exception errs and unable to locate IDs. I’ve created a keyword called “Wait For Page Load” which is essentially just calling a couple of sleeps to allow the app to settle so the html is available. I know this is a bit buff but is quite effective. Anything else I should be doing. Thanks.

Hi Brendan,

You probably need to include some waits for the elements to exist before you action them, as an example, say you had a line like this:

Input Text    //input[@my_field]

then you probably want to do something like this to ensure the input has loaded and is visible:

Wait Until Element Is Visible    //input[@my_field]
Input Text    //input[@my_field]

or if you are waiting for some javascript to run and create and enable the element then may want something like this:

Wait Until Element Is Enabled    //input[@my_field]
Input Text    //input[@my_field]

If you need to control the timeout wait use Set Selenium Timeout at the beginning of your test.

Hope that helps,

Dave.

From my experience I would say that it’s matter of working with stable states. Treat every action as transition between two states. Before taking any action wait until application is stable i.e. no spinners, progress bars and animations.

If you are running with Selenium, try out seleniumtestability - it has some mechanisms to try to enforce that the SUT is in state that nothing is loading/all crucial animations are done and so forth …