2008-10-03 11 views
6

funktioniert Ich versuche, Selenium RC mit Firefox 3 unter Linux mit PHP/Apache zu arbeiten, aber ich habe Probleme. Hier ist, was ich getan habe:Wie man Selenium mit PHP/Firefox3 unter Linux

  • Ich habe die Firefox Selenium-IDE-Erweiterung installiert.
  • Auf dem Webserver (der in meinem Fall tatsächlich die gleiche Maschine mit Firefox ist), habe ich den Selenium-Server mit gestartet: java -jar selen-server.jar -interactive
  • Ich habe ein PHP-Skript wie folgt :

PHP:

require_once 'Testing/Selenium.php'; 

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

Wenn ich den PHP-Skript ausführen, wird es eine neue Firefox Tab starten, aber ich diese Fehlermeldung erhalten:

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

Ich hatte mehr Erfolg mit Firefox 2 (mit "*firefox" anstelle von "*custom", aber ich möchte das nicht für mein aktuelles Projekt verwenden.

Antwort

12

Ich bin mir nicht sicher über die Etikette der Beantwortung Ihrer eigenen Frage ... aber experimentiert in einer Versuch-und-Irrtum-Weise, hier ist, wie ich Selenium mit PHP/Firefox3 auf Ubuntu arbeiten gelernt habe.

  1. ich heruntergeladen RC und kopierte das PHP-Client-Verzeichnis/usr/share/php als 'Selen'
  2. ich zum Selenium Server-Verzeichnis im Download navigiert und begann Selen mit java -jar selenium-server.jar
  3. I erstellt ein neues Firefox-Profil (durch Ausführen von firefox -ProfileManager). Ich rief das neue Profil ‚Selen‘
  4. Innerhalb dieses Profils, ich die Firefox Netzwerkeinstellungen zu Proxy-Bearbeitung alle Protokolle über die Local Host-Port 4444.
  5. ich mein PHP-Skript erstellt und lief es mit diesem Befehl:

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

ich habe meine aufgeführt (basic, nicht-PHPUnit, nicht-OO) erste Testskript unter Referenz.

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

Ich benutze phpunit, selen RC php api, um meine Testfälle zu laufen. Mein Testfall sieht aus wie



[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 

Dies wird innerhalb von virtuellen Maschinen Browser verbinden laufen