2008-10-03 44 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 

这将连接到浏览器的虚拟机

内运行