2010-01-20 7 views
0

Je viens de commencer à utiliser Selenium-RC avec PHPUnit pour effectuer des tests sur le Web. Initialement, je l'ai mis en place sur Windows 7 en utilisant ce guide - http://jodyt.com/2009/03/selenium-rc-and-php/ - et cela a bien fonctionné.Erreur de lancement du navigateur Selenium-RC

Je pourrais créer un test de fichier .php et l'exécuter avec phpunit.

Cependant, on m'a demandé de l'exécuter localement sur Ubuntu 8.04. J'ai donc téléchargé et dézippé le serveur selenium-rc à ~/sélenium et cela fonctionne bien en émettant 'java -jar selenium-server.jar'.

Maintenant, quand je change de répertoire où mes fichiers de test php sont, je reçois l'erreur suivante (s) de la fenêtre où le sélénium-serveur est en cours d'exécution:

15:26:58.317 INFO - Got result: ERROR Server Exception: sessionId led to start 
new browser session: Error while launching browser doesn't exist; perhaps this 
session was already stopped? on session led to start new browser session: 
Error while launching browser 

15:26:58.323 INFO - Command request: testComplete[, ] on session led to start 
new browser session: Error while launching browser 

15:26:58.323 INFO - Got result: OK on session led to start new browser  
session: Error while launching browser 

Je suis en train de faire tout cela grâce à des connexions Putty à la machine Ubuntu avec X11 Forwarding.

Des idées sur ce qui ne va pas?

+0

Je dois ajouter que l'erreur (s) se produit lors de l'émission de phpunit sur mes scripts de test, juste pour être clair – tombh

+0

pouvons-nous voir le code pour votre test? – AutomatedTester

Répondre

0

Bien sûr.

<?php 

require_once 'PHPUnit/Extensions/SeleniumTestCase.php'; 

class SomeTest extends PHPUnit_Extensions_SeleniumTestCase 
{ 
    private $licence; 

    function setUp() 
    { 
    $this->setBrowser('*firefox'); 
    $this->setBrowserUrl("http://blah"); 
    } 

function getLicence() 
{ 
    return $this->licence; 
} 

function setLicence($licence) 
{ 
    $this->licence = $licence; 
} 

function isStarted($element) 
{ 
    return $this->isElementPresent("//form[@id='".$element."']/ul/li[2]/img[@src='images/started.gif']"); 
} 

function isStopped($element) 
{ 
    return $this->isElementPresent("//form[@id='".$element."']/ul/li[2]/img[@src='images/stopped.gif']"); 
} 

function isDisabled($element) 
{ 
    return $this->isElementPresent("//form[@id='".$element."']/ul/li[2]/img[@src='images/disabled.gif']"); 
} 

function testStatusPage() 
{ 
    $this->open("/blah/"); 

    // 
    $this->setLicence('NA'); 

    // 
    $this->assertEquals($this->getLicence(), $this->getText("//div[@id='S1']/fieldset[1]/dl/dd")); 

    // Verify certain services are running 
    $this->assertTrue($this->isStarted('a')); 
    $this->assertTrue($this->isStarted('b')); 
    $this->assertTrue($this->isDisabled('c')); 
    $this->assertTrue($this->isDisabled('d')); 
    $this->assertTrue($this->isStopped('e')); 
    $this->assertTrue($this->isStarted('f')); 
    $this->assertTrue($this->isStarted('g')); 
    $this->assertTrue($this->isStarted('h')); 
    $this->assertTrue($this->isStarted('i')); 
} 
} 
?> 

Toutes nos excuses pour le formatage. J'ai aussi créé une autre encore plus simple qui vient de vérifier le titre de première page Google était « Google » et il a juste dit

Fatal error: Call to undefined method SimpleTest::assertTitle() 

donc je pensais qu'il ne trouve pas le fichier d'en-tête correctement, mais je ne un « trouver » et il a été trouvé dans

/usr/share/php/PHPUnit/Extensions/SeleniumTestCase.php 

Je suis assez perdu.