Waiting for JavaScript animations
When websites started to use AJAX, the developers and designers faced a new challenge. Previously, any major interaction with a website, such as clicking the purchase button, gave a user clear indication that something is changing after each action. With asynchronous requests, parts of the web page can change and user would not notice that something important has happened. So, the designers came up with ways to draw user's attention towards the section of the page that has changed. It started with fading in the changing content in a yellow box, slowly incorporated a spiny wheel, and now we have whole page swipes and many other animations to accomplish this.
Note
Animation is an act of changing the web page; it ranges from adding or subtracting images to removing everything on the page and starting over.
There are several situations in which a Selenium test will fail with ElementNotVisibleError
even though the element we are looking for is technically on the...