2008-10-03 73 views
6

我想讓Selenium RC與使用PHP/Apache的Linux上的Firefox 3一起工作,但遇到了問題。以下是我所做的:如何讓Linux在Linux上與PHP/Firefox3一起工作

  • 我已經安裝了Firefox Selenium-IDE擴展。我已經啓動了Selenium服務器:java -jar selenium-server.jar -interactive
  • 我有一個PHP腳本,如下所示:

PHP:

require_once 'Testing/Selenium.php'; 

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

當我運行PHP腳本,它推出一個新的Firefox標籤,但我收到此錯誤信息

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

我已經使用Firefox 2獲得了更多成功(通過使用"*firefox"而不是"*custom",但不希望將其用於當前項目。

回答

12

我不確定回答你自己的問題的禮儀......但是經過試驗和試錯的方式,下面是我如何設法讓Selenium在Ubuntu上與PHP/Firefox3一起工作。

  1. 我下載RC和複製的PHP客戶端目錄爲/ usr /共享/ PHP作爲「硒」
  2. 我瀏覽到在下載Selenium服務器目錄中,並與java -jar selenium-server.jar
  3. 我創建開始硒一個新的Firefox配置文件(通過運行firefox -ProfileManager)。我所謂的新的配置文件「硒」
  4. 在該配置文件,我通過本地主機端口編輯Firefox的網絡偏好設置代理所有協議4444
  5. 我創造了我的PHP腳本,並使用此命令運行它:

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

我列出我的(基本,非PHPUnit的,非OO)第一次測試腳本如下以供參考。

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

我使用phpunit,selenium RC php api來運行我的測試用例。我的測試用例看起來像



[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 

這將連接到瀏覽器的虛擬機

內運行