#!/usr/bin/perl
#----------------------------------------------------------------------#
# X11::GUITest ($Id: WebBrowser_1.pl 206 2011-05-15 13:24:11Z ctrondlp $)
# Notes: Basic interaction with Mozilla (Web Browser). Tested using
# v1.2.1 of the application under the English language.
#----------------------------------------------------------------------#
## Pragmas/Directives/Diagnostics ##
use strict;
use warnings;
## Imports (use [MODULE] qw/[IMPORTLIST]/;) ##
use X11::GUITest qw/
StartApp
FindWindowLike
WaitWindowClose
WaitWindowViewable
SendKeys
SetEventSendDelay
/;
## Constants (sub [CONSTANT]() { [VALUE]; }) ##
## Variables (my [SIGIL][VARIABLE] = [INITIALVALUE];) ##
my $MainWin = 0;
my $AlertWin = 0;
my $AboutWin = 0;
## Core ##
print "$0 : Script Start\n";
# Slow event sending down a little for when X server
# is busy with this and other bigger applications
SetEventSendDelay(20);
# Make sure Mozilla isn't already running
# even though we could find a way around
# other instances of it.
if (FindWindowLike('Mozilla Firefox')) {
die('Mozilla Firefox window is already open!');
}
# Start the application
StartApp('firefox');
# Wait at most 20 seconds for it to come up
($MainWin) = WaitWindowViewable('Mozilla Firefox', undef, 20) or die('Could not find browser window!');
# If an alert window presents itself within 5 seconds, close it
if ( (($AlertWin) = WaitWindowViewable('Alert', undef, 5)) ) {
SendKeys('{SPC}');
WaitWindowClose($AlertWin) or die('Could not close Alert window!');
}
# Select web address bar and go to a website
SendKeys('^(l)');
SendKeys("http://sourceforge.net/projects/x11guitest\n");
# Wait for website page to start coming up
WaitWindowViewable('X11::GUITest') or die('Could not find website page!');
# Give page time to finish loading, so we can interact with the shortcut keys
# again. Hopefully we can find a better way in the future rather then hard waits.
sleep(15);
# Open About Mozilla Window
SendKeys('%(h)a'); # Alt-h, a
($AboutWin) = WaitWindowViewable('About.*Mozilla') or die('Could not find About window!');
# Now close it
SendKeys('%(c)');
WaitWindowClose($AboutWin) or die('Could not close About window!');
# Close main Mozilla window
SendKeys('^(w)');
WaitWindowClose($MainWin) or die('Could not close Mozilla window!');
print "$0 : Script End (Success)\n";
## Subroutines ##