|
eValid -- Automated Web Quality Solution
Browser-Based, Client-Side, Functional Testing & Validation,
Load & Performance Tuning, Page Timing, Website Analysis,
and Rich Internet Application Monitoring.
|
|
eValid -- Playback Synchronization on DOM Element -- Command Description
eValid Home
Introduction
This command allows for synchronization of playback based on the appearance of
a particular value for a specified DOM element on a page.
The command also supports Adaptive Playback to provide for intelligent behavior
even when the page changes slightly.
KEY |
COMMAND SYNTAX: Name(...) |
ORIGIN |
EXPLANATION |
COMMENTS |
Strong Synchronization Commands (With Adaptive Playback)
|
PROF |
SyncOnSelectedObjProperty wid idx [["id_name"] "id_value"] DOM_name DOM_value "frame_path"
[1] SyncOnSelectedObjProperty wid idx DOM_name DOM_value "frame_path"
[2] SyncOnSelectedObjProperty wid idx "id_value" DOM_name DOM_value "frame_path"
[3] SyncOnSelectedObjProperty wid idx "id_name" "id_value" DOM_name DOM_value "frame_path"
| Edit Adaptive |
Waits for the value of the
specified DOM_name property at index idx
to take on the specified DOM_value.
This command uses the
Retry Interval
and respects the
Maximum Retry Time
settings values.
Playback resumes as soon as the match occurs,
or after the maximum retry time has passed.
|
Adaptive playback is applicable to this command,
unless adaptive playback is turned OFF.
When adaptive playback is ON,
then if the object at idx does
not have an element with DOM_name, eValid will look elsewhere in the
DOM tree for an object with the [unique] DOM_name, and then wait
for that named element to take on the required DOM_value.
|
PROF |
SyncNotOnSelectedObjProperty wid idx [["id_name"] "id_value"] DOM_name DOM_value "frame_path"
[1] SyncNotOnSelectedObjProperty wid idx DOM_name DOM_value "frame_path"
[2] SyncNotOnSelectedObjProperty wid idx "id_value" DOM_name DOM_value "frame_path"
[3] SyncNotOnSelectedObjProperty wid idx "id_name" "id_value" DOM_name DOM_value "frame_path"
| Edit Adaptive |
Performs the reverse of the above command, and playback continues when the first
instance is found when the specified information is NOT true.
This command uses the
Retry Interval
and respects the
Maximum Retry Time
settings values.
|
Adaptive playback is applicable to this command,
unless adaptive playback is turned OFF.
When adaptive playback is ON,
then if the object at idx does
not have an element with DOM_name, eValid will look elsewhere in the
DOM tree for an object with the [unique] DOM_name, and then wait
for that named element to take on the required DOM_value.
|
Standard Synchronization Commands (Without Adaptive Playback)
|
PROF |
SyncOnElementProperty wid "name" "Value" "frame_path"
| Edit Adaptive |
Waits for a named element property to have a specified value.
Playback continues when any element's
spcified property has the required value.
Applies to ANY property of ANY element ANYwhere in the DOM.
|
Adaptive playback does not apply.
|
PROF |
SyncNotOnElementProperty wid "name" "Value" "frame_path"
| Edit Adaptive |
Waits for a named element property and value to NOT be found
-- anywhere in the DOM.
Playback continues the first time that any element
has the required property not equal to the required value.
|
Applies to any property of any element anywhere in the DOM.
Adaptive playback does not apply.
|
Suggested Usages
Here is a typical instance of use of this command
to synchronize on the value of the DOM object feature
in window 0 at DOM index 254
named Processing_State to take on the value DONE:
- SyncOnSelectedObjProperty 0 254 Processing_State DONE ""
Pauses playback until Processing_State = DONE.
- SyncOnSelectedObjProperty 0 254 IDvalue Processing_State DONE ""
Pauses playback until Processing_State = DONE, and
then confirms there is an element property named IDvalue.
- SyncOnSelectedObjProperty 0 254 IDname IDvalue Processing_State DONE ""
Pauses playback until Processing_State = DONE, and then also confirms
that the property named IDname = IDvalue.
- SyncOnSelectedObjPropertyNOT 0 254 Processing_State DONE ""
Continues playback if Processing_State = DONE is not true.
- SyncOnSelectedObjPropertyNOT 0 254 IDvalue Processing_State DONE ""
Continues playback if Processing_State = DONE is not true
AND that element does NOT have a property named IDvalue.
- SyncOnSelectedObjPropertyNOT 0 254 IDname IDvalue Processing_State DONE ""
Continues playback if Processing_State = DONE is not true
AND that element does NOT have a property named IDname = IDvalue
(but any other value causes the playback to pause).
- SyncOnElementProperty 0 Processing_State DONE ""
Waits until SOME element anywhere in the DOM
has a property name Processing_State with value = DONE.
- SyncNotOnElementProperty 0 Processing_State DONE ""
Waits until NO element anywhere in the DOM
has a property name Processing_State with value = DONE.
Intended Application
The main intended purpose of this command is to provide
auxiliary playback synchronization
for pages that do not completely
adhere to eValid's build in synchronization methods.
Among many types of implementation,
AJAX-built pages tend to have this characteristic.
To apply the command successfully
you may need to
study the internal structure of the page
that you are trying to synchronize on,
find the ID of the element whose
value you are searching to match,
and then adjust eValid's behavior
using the SyncOnDOM command
to wait for that element to take on the required value.
Related Commands
Interpretation of the extra two arguments, id_name and id_value is
the same as for
ValidateSelectedObjProperty.
Escapment Mode Synchronization Method
In practice it probably will be required to operate
a chain of these commands in escapment mode,
according to one of these patterns:
(+) [(-) (+)]^n
(-) [(+) (-)]^n
(+) is a wait command waiting for a specified positive event, or a timeout.
(-) is a wait command waiting for a specified negative event, or a timeout.
[ ]^n indicates there may be multiple such in a sequence.
The thinking here is that, no matter how complicated the synchronization process is,
it will be included in one of these combinations.