Squish/Waiting for a Progress Bar
When you have a calculation or some other work item in your AUT that takes an arbitrary amount of time to complete, it can be hard to get your test script to be stable by just using snooze() or waitForObject() calls to wait for the work item to finish. Instead, you can use the more powerful waitFor() method, that takes any code statement, executes it until it returns True, or until the optional timeout is reached before it continues the script playback.
Assuming the work item shows a progress bar or a progress dialog while it is running, you can easily use waitFor() to make sure your script does not continue playback until the work item has completed and the progress dialog has gone away:
clickButton(waitForObject(":Dialog.Calculate_QPushButton")) waitFor("object.exists(':_QProgressDialog')", 20000) waitFor("not object.exists(':_QProgressDialog')")