I'm testing an angular site where the wait icon or spinner is implemented as a div tag that is displayed over the controls while a data fetch operation is in progress. Once that is done, the div is hidden or removed and the page controls become available for interaction. The OOTB keywords such as control condition and control condition wait don't seem to apply in this situation. My question is what is the best practice in this case for ensuring that controls are ready to receive input?
It much depends on application under test's behavior. For most of the cases, I would use "wait for property" (like enabled, focusable...)
So you are saying that I should wait for the property on the spinner DIV to basically be hidden? The underlying controls already will have a property of enabled and focusable...unless the overlaying of the spinner div causes the underlying controls not to be focusable...?
If "target control" has any property that can distinguish its status (ready vs. not ready), I'll use that property. Else, I'll wait for spinner gone (in this case, you can implement high level action "wait for control not exists")