Libellés

lundi 7 mars 2011

Selenium Perl et Debian (ou Ubuntu)

Selenium IDE : http://seleniumhq.org/projects/ide/ permet de créer des scripts selenium et de les exporter sous différents langage : Java, C#, Groovy, Python, Ruby et Perl pour les sysadmins


Ce qui nous intéresse ici c'est d'utiliser perl!


Tout d'abord il faut installer les paquets suivant :

apt-get install perl libtest-exception-perl libtest-www-selenium-perl


Ensuite il faut créer un script selenium sous Selenium IDE et l'exporter au format Perl.

Voici un script selenium bidon exporté en Perl :

use strict;
use warnings;
use Time::HiRes qw(sleep);
use Test::WWW::Selenium;
use Test::More "no_plan";
use Test::Exception;

my $sel = Test::WWW::Selenium->new( host => "localhost",
port => 4444,
browser => "*chrome",
browser_url => "http://fr.yahoo.com/" );

$sel->open_ok("/");
$sel->click_ok("link=Jacques Chirac aux portes du tribunal pour un procès?");
$sel->wait_for_page_to_load_ok("30000");
$sel->click_ok("link=Villepin souhaite que Chirac soit jugé, s'oppose à un report");
$sel->wait_for_page_to_load_ok("30000");


Maintenant si on lance le script perl on obtient l'erreur suivante :

Error requesting http://localhost:4444/selenium-server/driver/?cmd=getNewBrowserSession&1=*chrome&2=http%3A%2F%2Ffr.yahoo.com%2F:
500 Can't connect to localhost:4444 (connect: Connexion refusée)
# Looks like your test died before it could output anything.
zsh: exit 255 perl perl.pl

Ce qui signifie qu'il n'y a pas de serveur selenium de lancé.


Pour lancer un serveur selenium, il y a plusieurs méthodes :

1 - On télécharge le jar de selenium-server et on le lancer en java

firefox http://seleniumhq.org/download/
java -jar selenium-server.jar


2 - Sinon, on exécute le script groovy suivant (Il s'occupe de télécharger et lancer Selenium Server)

import com.thoughtworks.selenium.*
import org.openqa.selenium.server.*

@Grab(group='org.seleniumhq.selenium.server', module='selenium-server', version='1.0.1')

def server = new SeleniumServer()
server.main(new String[0])
println("Started")

Aucun commentaire:

Publier un commentaire