Before running each test step, BugBug will do a series of checks if your page is ready for this action.
For example, before BugBug tries to click a button, it will check if the page finished loading, if the button exists and if it's visible. If those conditions are met, BugBug will attempt to click the button. Such conditions are called "Waiting conditions".
- more stable tests
- you don't need to hardcode manual delays
- more intelligent tests running, behaving more like a human and not a machine
BugBug waits until your page is ready to interact with and if all the basic assets are loaded. In technical terms this is waiting for
BugBug waits until your page has finished loading additional data via other network requests.
Even after the page is loaded, your web app needs to request additional data from a server. BugBug will wait until your server requests are more or less finished - by default BugBug will stop waiting when there are not more than 2 unfinished requests for more than 1 second. You can change this in Project Settings.
BugBug will not interact with the element until it is visible. For example, if you have a "Done" button than only appears after several seconds, BugBug will wait until it appears. That's why you should avoid adding manual delays/sleep.
Same as in "Element is visible" above. BugBug will try not to click something that is covered by another element.
This ensures that the animation of the element stopped before BugBug interacts with it.
For example, if you have a collapsed section that expands with an animation, BugBug will wait until it is fully expanded before interacting with its contents.
This waiting condition is enabled if during the recording you clicked an element that was not animating. If the element has a looping animation, BugBug will disable this waiting condition by default.
This applies to form elements, that can have a
disabledattribute. BugBug will hold the step execution until the form element is active. This waiting condition is automatically disabled if during the recording you actually clicked on a disabled element.
This applies to text input elements. BugBug will wait before typing the letters until it verifies that a text
textareahas focus, (meaning that the blinking typing cursor is present the right field)
This is a special waiting condition that is added automatically by BugBug while recording. If BugBug notices that after a click there's a change in the URL, BugBug will not continue running the next step immediately - it will wait until the URL changes. This also applies to URL history state changes for Single Page Applications.
Global waiting conditions can be set up in the project settings.
You can override waiting conditions per each step. Sometimes you need to disable one of them to prevent unnecessary failed tests.
If some waiting conditions are not met, BugBug will anyway try to perform the action. For example, if the page networking has not finished, BugBug will anyway click the button after 30 seconds.
You will be notified about skipped waiting conditions by a different green indicator