【问题标题】:How to get Selenium working with PHP/Firefox3 on Linux如何让 Selenium 在 Linux 上与 PHP/Firefox3 一起工作
【发布时间】:2008-10-03 13:44:24
【问题描述】:

我正在尝试让Selenium RC 在 Linux 上使用 PHP/Apache 使用 Firefox 3,但我遇到了问题。这是我所做的:

  • 我已经安装了 Firefox Selenium-IDE 扩展。
  • 在 Web 服务器上(在我的情况下,它实际上是运行 Firefox 的同一台机器),我使用以下命令启动了 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",但我不想在我当前的项目中使用它。

【问题讨论】:

    标签: php testing selenium firefox-3


    【解决方案1】:

    我不确定回答您自己的问题的礼仪......但是通过反复试验的方式进行了试验,以下是我设法让 Selenium 在 Ubuntu 上与 PHP/Firefox3 一起工作的方法。

    1. 我下载了 RC 并将 php 客户端目录复制到 /usr/share/php 作为 'Selenium'
    2. 我导航到下载中的 Selenium Server 目录,并使用 java -jar selenium-server.jar 启动 selenium
    3. 我创建了一个新的 Firefox 配置文件(通过运行 firefox -ProfileManager)。我将新的配置文件称为“Selenium”
    4. 在该配置文件中,我编辑 Firefox 网络首选项以通过 localhost 端口 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();
    

    【讨论】:

      【解决方案2】:

      我使用 phpunit、selenium RC php api 来运行我的测试用例。我的测试用例看起来像

      
      
      1235$Deepan@Newton~/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", "myemail@domain.com");
          $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);
        }
      }
      ?>
      1332$Deepan@Newton~/selenium/ide_scripts$
      phpunit mytest.php
      
      

      这将连接到在虚拟机中运行的浏览器

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-03
        • 2012-04-12
        • 1970-01-01
        • 1970-01-01
        • 2010-11-23
        • 2017-06-25
        • 1970-01-01
        相关资源
        最近更新 更多