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 -- Morfik Synchronization Method Explanation
This page documents how eValid supports playback synchronization
on applications built with the
Morfik Development System.
Pages may not synchronize during playback...
Time based synchronization is undesirable...
Morfik has supplied eValid users with
a special DOM property
and corresponding value
that is always included in any Morfik-built page.
Here is a simple explanation of what's going on:
- As the Morfik-built page loads
one of the page's DOM elements with an id property
value of xfrmXappMain is used to signal the ready state of the
AJAX asynchronous operation.
- While material is still being downloaded from the server, the
phrase "Loading..." appears on the screen, but this signal
is insufficient for synchronization purposes because of rendering times...
- After the loading actually is complete (and independent of whether
"Loading..." appears on the screen) the particular property of the
above identified DOM element takes on the value READY.
- After that happens, eValid can continue playback with confidence
that all required elements of the page have been completely loaded
by the Morfix AJAX process.
Here is the script modification that corresponds to the above described
This script is one of eValid's
Playback Synchronization on DOM Element commands.
# Copyright (c) 2009 by Software Research, Inc.
# Recording made on: Microsoft Windows XP Service Pack 2
ScreenSize 1280 960
# MANUALLY edited/added syncing script command replaces Wait...
SyncOnSelectedObjProperty 0 0 "externalsynch" "READY" \
"id" "xfrmXappMain" ""
# When eValid playback proceeds past this commend you know that
# Morfik's downloading work is finished.
- The Window id is 0 -- meaning the main window.
Change this to some other sub-window id
if you intend to synchronize on that window.
- The defined object index is set to zero because eValid's
adaptive playback will automatically find the page's DOM
element that has the matching value for its id.
- Edit this command into your script anywhere you anticipate that
page contents will not be ready and/or that de-synchronization will occur.
- Better too many copies of this sync command than too few...
extra copies can't hurt, as they will only decrease the chance for
loss of playback