Recorded Activity
All activity done by user during recording session is translated into
high-level actions. The Rapise recorder tries to interpret user actions in
straight and simple way as much as possible. In some cases it is enough, but in
other cases additional actions are required.
For example consider the editable combo-box:
![]()
Whenever the value is changed depending on exactly how the user interacts
with the control, one of the following actions may be recorded:
SeS('Combo').DoSetText("combo1Item0");
i.e. combo box text is changed
SeS('Combo').DoSelectItem("combo1Item0")
i.e. selected item is changed
These actions will re-produce the appropriate user behavior. The object
value will change once either of these are executed. But a specific application
may be sensitive to which specific event is triggered. That is why it may be
required to change the recorded sequence to match the expected event.
Event Side Effects
The target application may have different responses for the various
different events. For example, the programmer may put the editable Combo Box on
a form but only expect the end-user to select item. The screenshot below
demonstrates this:
![]()
We have "Account:" field set to some value. This is a prerequisite
for other fields to become 'enabled' i.e. to allow user to set "Update
Type", and "Account Holder". In this case you may see that
account number is typed into the field but other fields left disabled.
The explanation of this side effect is simple, the programmer didn't expect
the combo box text to be changed manually and let the program to wait for
"On Selection Changed". In this case we didn't change the selection,
we just changed control value text.
So once we do the selection of the same value using the combo box dropdown
![]()
the required response happens and the application enables the other input
fields to become available:
![]()
Recommendations
One may consider using either:
DoSelectItem
or
DoSetText
or their combination after the application is recorded. This
may help to produce required application responses. Of course a real
application should be able to handle all possible user interactions so these
situations may highlight user interface issues in the application itself!