Question

J'essaie de faire Selenium RC utiliser Firefox 3 sous Linux avec PHP / Apache, mais je rencontre des problèmes. Voici ce que j'ai fait:

  • J'ai installé l'extension Firefox Selenium-IDE.
  • Sur le serveur Web (qui dans mon cas est en fait la même machine sous Firefox), j'ai démarré le serveur Selenium avec: java -jar selenium-server.jar -interactive
  • J'ai un script PHP comme suit:

PHP:

require_once 'Testing/Selenium.php';

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

Lorsque j'exécute le script PHP, un nouvel onglet Firefox est lancé, mais le message d'erreur suivant s'affiche :

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

J'ai eu plus de succès avec Firefox 2 (en utilisant "* firefox" au lieu de "* custom" , mais je ne souhaite pas l'utiliser pour mes projet en cours.

Était-ce utile?

La solution

Je ne suis pas sûr de l'étiquette qui consiste à répondre à votre propre question ... mais après avoir expérimenté de façon empirique, voici comment j'ai réussi à faire fonctionner Selenium avec PHP / Firefox3 sur Ubuntu.

  1. J'ai téléchargé RC et copié le répertoire du client php dans / usr / share / php sous le nom 'Selenium'
  2. J'ai accédé au répertoire Selenium Server lors du téléchargement et démarré selenium avec java -jar sélenium-server.jar
  3. J'ai créé un nouveau profil Firefox (en exécutant firefox -ProfileManager). J'ai appelé le nouveau profil 'Selenium'
  4. Au sein de ce profil, je modifie les préférences de réseau Firefox pour utiliser un proxy pour tous les protocoles via le port local 444.
  5. J'ai créé mon script php et l'ai exécuté avec cette commande:

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

J'ai cité ci-dessous mon premier script de test (de base, non-PHPUnit, non-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();

Autres conseils

J'utilise phpunit, sélénium RC php api pour exécuter mes tests. Mon cas de test ressemble à



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

Cela permettra de se connecter aux navigateurs s'exécutant dans des machines virtuelles

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top