views:

5024

answers:

2

I am trying to get Selenium RC working with Firefox 3 on Linux with PHP/Apache but am experiencing problems. Here's what I've done:

  • I have installed the Firefox Selenium-IDE extension.
  • On the web server (which in my case is actually the same machine running Firefox), I've started the Selenium server with: java -jar selenium-server.jar -interactive
  • I have a PHP script as follows:

PHP:

require_once 'Testing/Selenium.php';

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

When I run the PHP script, it does launch a new Firefox tab, but I get this error message:

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

I have had more success with Firefox 2 (by using "*firefox" instead of "*custom" but don't want to use that for my current project.

+4  A: 

I'm not sure of the etiquette of answering your own question... but having experimented in a trial-and-error way, here's how I've managed to get Selenium working with PHP/Firefox3 on Ubuntu.

  1. I downloaded RC and copied the php client directory to /usr/share/php as 'Selenium'
  2. I navigated to the Selenium Server directory in the download, and started selenium with java -jar selenium-server.jar
  3. I created a new Firefox profile (by running firefox -ProfileManager). I called the new Profile 'Selenium'
  4. Within that profile, I editing the Firefox Network preferences to proxy all protocols via localhost port 4444.
  5. I created my php script and ran it with this command:

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

I've listed my (basic, non-PHPUnit, non-OO) first test script below for reference.

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();
Peter Howe
A: 
Deepan Chakravarthy