UI Test Automation
Playground

Quality is not an act, it is a habit.

Aristotle

Different automation pitfalls appearing in modern web applications are described and emulated below.

Responsive image

Rubik's Cube is licensed under CC 4.0 BY-NC

Dynamic ID

Make sure you are not recording dynamic IDs of elements

Class Attribute

Check that class attribute based XPath is well formed

Hidden Layers

Verify that your test does not interact with elements invisible because of z-order

Load Delay

Ensure that a test is capable of waiting for a page to load

AJAX Data

Some elements may appear on a page after loading data with AJAX request

Client Side Delay

Some elements may appear after client-side time consuming JavaScript calculations

Click

Event based click on an element may not always work

Text Input

Entering text into an edit field may not have effect

Scrollbars

Scrolling an element into view may be a tricky task

Dynamic Table

Verify cell value in a dynamic table

Verify Text

Finding an element by displayed text has nuances

Progress Bar

Follow the progress of a lengthy process and continue upon completion

Visibility

Check if element is visible on screen

Sample App

Demo application with dynamically generated element attributes

Mouse Over

Placing mouse over an element may change DOM and make the element unavailable

Non-Breaking Space

Non-breaking space looks like a normal one on screen. It may lead to confusion when building XPath

Overlapped Element

Make element visible to enter text

Shadow DOM

Look inside Shadow DOM component

Alerts

Accept alerts, confirmations and prompts

File Upload

Upload files

Animated Button

Wait for animation to stop before clicking a button

Disabled Input

Wait for edit field to become enabled

Auto Wait

Wait for an element to become interactable