Ok Mr.WW(mr.expert) here's my code of effort whic I have done....
Code : package ELABS_Login; use strict; use warnings; use Time::HiRes qw(sleep); use Test::WWW::Selenium; use Test::More "no_plan"; use Test::Exception; use Log::Fast; sub new { my $class = shift; my %args = (PORT => undef, HOST => undef, SELENIUMHOST => "localhost", SELENIUMPORT => "4444", BROWSER => "googlechrome", LOGFOLDER => undef, @_); my $self = {}; $self->{HOST} = $args{HOST}; $self->{PORT} = $args{PORT}; $self->{SELENIUMHOST} = $args{SELENIUMHOST}; $self->{SELENIUMPORT} = $args{SELENIUMPORT}; $self->{BROWSER} = $args{BROWSER}; bless ($self, $class); $self->{LOG} = $self->_log_init($args{LOGFOLDER}); print "Launching the script on browser $self->{BROWSER}\n"; $self->{HANDLE} = Test::WWW::Selenium->new( host => $self->{SELENI +UMHOST}, port => $self->{SELENIUMPORT}, browser => "*$self->{BROWSER}", browser_url => "http://$self->{HOS +T}:$self->{PORT}", default_names => 1, error_callback => sub { print "Fai +led to load the webpage\n"; }, ); return $self; } sub _log_init { my $self = shift; my $logFolder = shift; $logFolder = "C\:\\Users\\esrirsa\\Documents\\Logs\\" if(!defined +$logFolder); mkdir "$logFolder/screenshots" unless -d "$logFolder/screenshots"; my $pid = $$; my $timestamp = scalar(localtime); $timestamp =~ s/\s+|:/_/g; my $logSuffix = $pid."_".$timestamp; $self->{LOGSUFFIX} = $logSuffix; my $logFileName = $logFolder."elab_".$logSuffix.".log"; print "Log file is $logFileName\n"; open(LOG,">$logFileName") or die "Cannot create such file $! \n"; my $LOG = Log::Fast->new({ level => 'DEBUG', prefix => '%D %T [%L] ', type => 'fh', fh => \*LOG, }); return $LOG; } sub login { my $self = shift; my $user = shift; my $password = shift; my $max_seconds_sleep = 60 if (!defined shift); # Parameters are passed through to WWW::Selenium $self->{LOG}->INFO("Starting the main execution"); $self->{LOG}->INFO("This is the process\_id"); $self->{LOG}->INFO("PID\= $$"); my $sel = $self->{HANDLE}; # use special test wrappers around WWW::Selenium commands: my $initial_page = $sel->open_ok("/login"); my $max_window = $sel->window_maximize(); sleep(5); #if($max_window) { #$self->{LOG}->INFO("Successfully maximized the $self{BROWSER} + window "); #} else { # $self->{LOG}->WARN("Couldn't maximize the $self->{BROWSER} wi +ndow"); #} $sel->type("//div[\@id='username']/input", $user); $sel->type("//div[\@id='pass']/input", $password); $sel->click("//div[\@id='edituser']/div[2]"); my $screenshot_path = $sel->capture_screenshot("C\:\\Users\\esrirs +a\\Documents\\Logs\\Screenshots\\login_screen".$self->{LOGSUFFIX}.".p +ng"); $self->{LOG}->INFO("Checking the screenshot stored in the specifie +d path or not "); $self->{LOG}->INFO($screenshot_path); $sel->wait_for_page_to_load("60000"); #$sel->refresh(); $screenshot_path = $sel->capture_screenshot("C\:\\Users\\esrirsa\\ +Documents\\Logs\\Screenshots\\after_login".$self->{LOGSUFFIX}.".png") +; $self->{LOG}->INFO($screenshot_path); for my $second (0..$max_seconds_sleep) { if($sel->is_text_present("ARTS Quick Launch")) { #print "Expected element found\n"; $self->{LOG}->INFO("Login done succesfully"); $screenshot_path = $sel->capture_screenshot("C\:\\Users\\e +srirsa\\Documents\\Logs\\Screenshots\\successful_login" .$self->{LOGS +UFFIX}.".png"); last; #} elsif ($sel->alert_is("Please close you exist")) { # print "Connection lost to E-LAB server\n"; # $screenshot_path = $sel->capture_screenshot("C\:\\Users\\ +esrirsa\\Documents\\Logs\\Screenshots\\failed_login". # $self->{LOGSUFFIX}.".png"); # $self->{LOG}->WARN("Connection lost to E-LAB server"); # exit; }else { $self->{LOG}->WARN("Could not find the expected string in t +he web page after $second/$max_seconds_sleep seconds attempts\n"); sleep ($second); next; } } sleep(5); $screenshot_path = $sel->capture_screenshot("C\:\\Users\\esrirsa\\ +Documents\\Logs\\Screenshots\\login_successful".$self->{LOGSUFFIX}.". +png"); $self->{LOG}->INFO($screenshot_path); $sel->is_text_present("Welcome to e-Lab"); $self->{LOG}->INFO("The execution is done successfully"); return 1; } 1;
This is my .pl file code use strict; use warnings; use ELABS_Login; my $elab = new ELABS_Login(HOST=>"155.53.113.65", PORT=>"3000", BROWSE +R => "googlechrome"); $elab->login("eredmoh","Password2");

In reply to Re^5: How to create testcase executor? by anurag_perl
in thread How to create testcase executor? by anurag_perl

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.