2008-10-03 18 views
6

Estoy tratando de obtener Selenium RC trabajando con Firefox 3 en Linux con PHP/Apache, pero estoy teniendo problemas. Esto es lo que hice:Cómo obtener Selenium trabajando con PHP/Firefox3 en Linux

  • He instalado la extensión Firefox Selenium-IDE.
  • En el servidor web (que en mi caso es en realidad la misma máquina que ejecuta Firefox), he iniciado el servidor Selenium con: java -jar selenium-server.jar -interactive
  • Tengo un script PHP de la siguiente manera :

PHP:

require_once 'Testing/Selenium.php'; 

$browser = new Testing_Selenium("*custom /usr/lib/firefox-3.0.3/firefox", "https://www.example.com"); 
$browser->start(); 

Cuando ejecuto el script PHP, que hace poner en marcha una nueva pestaña de Firefox, pero me sale este mensaje de error:

The requested URL /selenium-server/core/RemoteRunner.html was not found on this server. 

He tenido más éxito con Firefox 2 (usando "*firefox" en lugar de "*custom" pero no quiero usar eso para mi proyecto actual.

Respuesta

12

No estoy seguro de la etiqueta de responder a su propia pregunta ... pero habiendo experimentado de manera de prueba y error, así es como he logrado que Selenium trabaje con PHP/Firefox3 en Ubuntu.

  1. He descargado RC y copiar el directorio del cliente php a/usr/share/php como 'El selenio'
  2. navegué al directorio selenio servidor en la descarga, y comenzó el selenio con java -jar selenium-server.jar
  3. creé un nuevo perfil de Firefox (ejecutando firefox -ProfileManager). Llamé al nuevo perfil 'que Selenio'
  4. Dentro de ese perfil, que la edición de las preferencias de Firefox de red para todos los protocolos de proxy a través del puerto 4444. localhost
  5. creé mi script php y corrió con este comando:

    php -d include_path=".:/usr/share/php:/usr/share/php/Selenium/PEAR" test.php

he enumerado mi (básico, no PHPUnit, no OO) primera escritura de la prueba a continuación como referencia.

require_once 'Testing/Selenium.php'; 

$oSelenium = new Testing_Selenium(
    "*custom /usr/lib/firefox-3.0.3/firefox -P Selenium", 
    "https://www.example.com"); 
$oSelenium->start(); 

$oSelenium->open("/"); 

if (!$oSelenium->isElementPresent("id=login_button")) { 
     $oSelenium->click("logout"); 
     $oSelenium->waitForPageToLoad(10000); 
     if (!$oSelenium->isElementPresent("id=login_button")) { 
       echo "Failed to log out\n\n"; 
       exit; 
     } 
} 

$oSelenium->type("login", "my_username"); 
$oSelenium->type("password", "my_password"); 
$oSelenium->click("login_button"); 
$oSelenium->waitForPageToLoad(10000); 

$oSelenium->click("top_nav_campaigns"); 

$oSelenium->stop(); 
1

Uso phpunit, selenium RC php api para ejecutar mis testcases. Mi caso_prueba parece



[email protected]~/selenium/ide_scripts$ 
cat mytest.php 
'FF on linux', 
     'browser' => '*firefox', 
     'host' => '10.211.55.8', 
     'port' => 4444, 
     'timeout' => 30000, 
    ), 
    array(
     'name' => 'FF on windows', 
     'browser' => '*firefox', 
     'host' => '10.211.55.5', 
     'port' => 4444, 
     'timeout' => 30000, 
    ), 
    */ 
    array(
     'name' => 'Google Chrome on windows', 
     'browser' => '*googlechrome', 
     'host' => '10.211.55.5', 
     'port' => 4444, 
     'timeout' => 30000, 
    ), 
    /* 
    array(
     'name' => 'IE on windows', 
     'browser' => '*iexplore', 
     'host' => '10.211.55.5', 
     'port' => 4444, 
     'timeout' => 30000, 
    ), 
    array(
     'name' => 'Safari on MacOS X', 
     'browser' => '*safari', 
     'host' => 'localhost', 
     'port' => 4444, 
     'timeout' => 30000, 
    ), 
    array(
     'name' => 'Firefox on MacOS X', 
     'browser' => '*chrome', 
     'host' => 'localhost', 
     'port' => 4444, 
     'timeout' => 30000, 
    ), 
    */ 
    array(
     'name' => 'Google Chrome on MacOS X', 
     'browser' => '*googlechrome', 
     'host' => 'localhost', 
     'port' => 4444, 
     'timeout' => 30000, 
    ) 
); 

    protected function setUp() 
    { 
    //$this->setBrowser("*chrome"); 
    $this->setBrowserUrl("http://www.facebook.com/"); 
    } 

    public function testMyTestCase() 
    { 
    $this->open("/index.php?lh=94730c649368393b6954cb9fc0802e0a&eu=iKjrC7Q2aC-8tcU7PVLilg"); 
    $this->type("email", "[email protected]"); 
    $this->type("pass", "mypassword"); 
    $this->click("persistent"); 
    $this->click("//input[@type='submit']"); 
    $this->waitForPageToLoad("30000"); 
    sleep(10); 
    $this->open("http://apps.facebook.com/myapp/"); 
    sleep(4); 
    $this->click("link=Play"); 
    $this->waitForPageToLoad("30000"); 
    sleep(4); 
    $this->click("navAccountLink"); 
    sleep(4); 
    $this->click("link=Logout"); 
    $this->waitForPageToLoad("30000"); 
    sleep(4); 
    } 
} 
?> 
[email protected]~/selenium/ide_scripts$ 
phpunit mytest.php 

Esto conectará con navegadores que se ejecutan dentro de las máquinas virtuales

Cuestiones relacionadas