#!/usr/bin/perl
use strict;
use warnings;
use EventRepository;
my $er = EventRepository->new;
$er->gets('http://google.com');
####
package EventRepository;
use strict;
use warnings;
use vars qw(@ISA);
@ISA = qw (FFMech);
sub new {
my $self = {};
bless $self, shift;
logi('Creating event repository.');
$self->{_mech} = FFMech->new();
return $self;
}
####
package FFMech;
use strict;
use warnings;
use vars qw(@ISA);
@ISA = qw (WWW::Mechanize::Firefox);
use X11::GUITest qw/SendKeys FindWindowLike ClickWindow SetEventSendDelay/;
sub new {
my ($class, %args) = @_;
my $self = {};
bless $self, shift;
$self->_init(@_);
return $self;
}
sub _init {
my ($self, %args) = @_;
$self->{_mech} = WWW::Mechanize::Firefox->new(launch => 'firefox', activate => 1 );
$self->{_window_id} = FindWindowLike('Mozilla Firefox');
ClickWindow($self->{_window_id});
if ($self->{_mech}->title =~ /Restore Session/i) {
$self->{_mech}->click( {selector => '#errorCancel' } );
}
}
sub gets {
my $self = shift;
my ($url, $sec, $syn) = set_args(@_);
$self->{_mech}{_mech}->get($url, sychronize => $syn);
sleep($sec);
}
####
$self->{_mech}{_mech}->get($url, sychronize => $syn);