Hi,
Q: Are you using Selenium IDE FireFox plug-in to record?
A: Yes. I have it record what I want to do, then I use the export function to put the Selenium commands into perl, then copy and paste into a text editor and remove the "_ok"s and place "sel->start();" in the code.
RE: Test::WWW::Selenium - Thanks I changed that, but my code doesn't seem to run how I want it to.
RE: Real website and login - The real website and my login is real in the code below.
RE: Else, elsif, \@ - Thanks, I changed that too but my code doesn't seem to run how I want it to.
Desired outcome:
- Go to www.cokezone.co.uk
- Login (and handle any pops if they happen
- Check the number of points in the account and put into a scalar variable $points
- Open a file handle <CODES> and read the codes into an array @codes
- Enter the codes into the website and check against the $points scalar variable to see if they were entered correctly - printing if the code was successful or not
- Carry on for each of codes in the array @codes
- Logout when done
Progress: I've only gotten as far as no. 2 in the Selenium IDE, and I can only get to no. 1 using the Selenium RC and Perl.
I'm pretty confident I can write a file handle and read it into an array and for each of the codes get Selenium to input them into the CokeZone website, however it's no use if I can't even automate a login that handles the popups!
Code I've written to try to login and handle the popups:
#! /usr/bin/perl
use strict;
use warnings;
use WWW::Selenium;
my $sel = WWW::Selenium->new( host => "localhost",
port => 4444,
browser => "*chrome",
browser_url => "http://www.cokezon
+e.co.uk" );
$sel->start();
$sel->open("/home/index.jsp");
$sel->click("link=Log in");
$sel->wait_for_page_to_load("30000");
if ( $sel->is_text_present("Thanks for visiting!\n\nNow here's your ch
+ance to tell us what you think. This quick and easy survey will only
+take you a few minutes to fill out, and it'll help us to get more of
+the stuff you want to see into 'Coke Zone'.\n\nThanks for your help,\
+nThe 'Coke Zone' Team") == 1 )
{
$sel->select_window("entry");
$sel->close();
$sel->select_window("null");
}
if ( $sel->is_text_present("At the end of your visit on this website p
+lease take the time to complete an on-line survey, which will provide
+ us with feedback on the website. Please do not close this window.\n\
+nEnjoy your visit")
== 1 )
{
$sel->select_window("stealth");
$sel->close();
$sel->select_window("null");
}
$sel->click("emailAddress");
$sel->type("emailAddress", "bogus\@fake.com");
$sel->type("password", "password");
$sel->click("remember");
$sel->click("subButton");
$sel->wait_for_page_to_load("30000");
my $points = $sel->get_text("//div[\@id='header_links']/div[1]/div[1]/
+h3");
print $points
$sel->click("link=Log out");
exit 0;
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.