Other Verification Options
There are a few other verification options which depend on capabilities
of the protocol used for automation. The RFB () protocol supports
the following features:
- Screen update events are received from the server any time the desktop image changes. When
one expects a window to open or refresh on the desktop, update events
may be used for a quick test of desktop changes. This principle was
often used in early product versions (up to VNCRobot 1.2) when image
search was not supported. As various VNC servers may have different
image update strategies, this way of verification is not much reliable
and we list it just for completeness.
- Bell eventsare
generated when the server rings a bell (beeps). Such events are
typically generated by printing out the BELL character (ASCII 0x07) on
the desktop. Some GUI components are also known to ring the bell. For
example, a text field beeps when you press the Backspace key and there
is no character to delete.
- Server side
clipboard
updates. They are emitted when the server clipboard gets updated
with text, for example through Ctrl+C or Ctrl+X pressed on the desktop.
Be aware that these events may or may not be supported by other
protocols (clients). If you decide to migrate your test scripts to
another protocol, make sure to verify what is supported and what not.
All the three features may be exploited by the Waitfor command as
follows. For more information on the behaviour and other parameters see
the
Waitfor
command specification.
- Waitfor update waits for
screen update of the specified size (extent). It allows to say
something like "wait until XX% of the screen updates". The command by
default waits for a single large update. As Windows VNC servers prefer
to break larger updates into a number of smaller ones, it is
recommended to use the command with the "cumulative" parameter set to
"true". It is also recommended to set up a wait command with an
appropriate time value after the update condition is met because some
applications rather emit a longer sequence of updates where an empty
window displays first and the content is delivered later on in a
separate update event. The following example starts Internet Explorer
on Windows XP and opens the Google web site.
Press Windows+r wait=3s Typeline iexplore Waitfor update extent="90%" cumulative=true wait=5s Press Ctrl+O wait=3s Typeline google.com Waitfor update extent="80%" cumulative=true wait=5s
|
|
|
| Waitfor
update
example
on Windows XP
|
- Waitfor
bell suspends script execution until one or more bell events are
received from the server or the specified timeout is reached. Except a
few GUI cases this command has no use on Windows. It is however quite
powerful on Linux/Unix where bell can be emitted from a command line
through "
echo -e '\007'".
This allows to execute a console
command and wait until it completes (
"<command>; echo -e
'\007'"
) or even test whether it succeeds (
"<command> && echo
-e '\007'"
). A simple example of waiting for
a file search result on Ubuntu Linux follows.
Typeline "find /lib -name dummy.txt; echo
-e '\007'" Waitfor bell timeout="1m" |
|
|
| Waitfor
bell
example
on Ubuntu Linux
|
- Waitfor
clipboard waits for the server clipboard update. It may be used
to verify that a text content was successfully copied on the desktop
and
transferred to the client. The text transfer itself doesn't require the
Waitfor command and it happens automatically whenever the clipboard
content on the server side changes. The text is then available in the
script
through the _SERVER_CLIPBOARD_CONTENT variable. Be aware that
various VNC servers may require additional configuration steps to make
the clipboard transfer work. See the
Release Notes document for details. The following example demonstrates clipboard
transfer on GNOME text editor on Ubuntu Linux.
Type test wait=1s Press Ctrl+A Waitfor clipboard timeout=5s Type "Copied:
{_SERVER_CLIPBOARD_CONTENT}" |
|
|
| Waitfor
clipboard
example
on Ubuntu Linux
|
12 December 2014
|
|
Version 1.0
|