mozilla / persona

Persona is a secure, distributed, and easy to use identification system.
https://login.persona.org
Other
1.83k stars 265 forks source link

Add an indicator that the loading screen has been displayed for testability #4227

Open davehunt opened 9 years ago

davehunt commented 9 years ago

We have a number of test automation suites that complete sign-in via Persona, which have started to fail in Firefox when using Selenium 2.48. This is due to us not waiting for the loading screen to be hidden before attempting to interact with the content. It means that clicks are received by the loading screen instead of the submit button, for example. Usually we would wait for the loading screen to be hidden, but the loading screen is not initially visible after the previous interaction so our wait condition would be met immediately. We could first wait for the loading screen to be displayed, but as it can flash up for a fraction of a second we might miss it and time out (depending on how you run your tests, there can be network latency).

I think an ideal solution would be to indicate in the document that the loading screen has been displayed but is no longer displayed. This could be done most simply by adding a class to an element. I'm open to other suggestions. For now, I will add a sleep in our automation.

This is the change in Selenium that caused this: https://github.com/SeleniumHQ/selenium/commit/0eec81da52ba4dfb16de590e6e82ebafa452416f The change has caused others to see similar issues: https://github.com/SeleniumHQ/selenium/issues/1202

Note that this is not a bug in Selenium, it is an enhancement that has highlighted an issue with our Persona automation.