Question

Tout savoir comment utiliser Selenium 2 avec PHPUnit? Y a-t-il des Sélénium 2 échantillons en PHP?

Était-ce utile?

La solution

Mise à jour rapide: phpunit ne supporte maintenant Sélénium 2


Au moment de l'écriture, PHPUnit ne supporte pas Sélénium 2.

php-WebDriver facebook permet à l'API complète WebDriver à appeler de PHP d'une manière élégante. Pour citer:

  

La plupart des clients doivent d'abord être lu le protocole pour voir ce qui est   possible, étudier alors le client lui-même pour voir comment l'appeler. Cette   espère éliminer cette dernière étape.

Il est utilisé par le démarrage du serveur Selenium 2, qui fournit l'interface à localhost:4444/wd/hub.

/usr/bin/java -jar /path/to/selenium-server-standalone-2.7.0.jar

en cours d'exécution, puis le code de test PHP, qui appelle cette interface. Par exemple:

<?php

require '/path/to/php-webdriver/__init__.php';

$webdriver = new WebDriver();

$session = $webdriver->session('opera', array());
$session->open("http://example.com");
$button = $session->element('id', 'my_button_id');
$button->click();
$session->close();

Le WebDriver API est mis en correspondance avec les méthodes PHP, comparez appelant click sur element dans l'exemple avec l'élément / cliquez sur appel API dans la documentation.

Le code de test peut alors être enveloppé dans des tests réguliers PHPUnit.

Ce n'est pas prise en charge native de PHPUnit, mais il est une approche tout à fait solide.

Autres conseils

S'il vous plaît consulter le http://code.google.com/p/php -webdriver-fixations / . C'est une bibliothèque PHP qui communique avec le serveur en utilisant Sélénium WebDriver JsonWireProtocol. Ceci est première version mais il fonctionne.

À l'heure actuelle (2017) Je recommande d'utiliser php-WebDriver , ce qui est le plus caractéristique AFAIK langage complet de PHP liaison interagir avec sélénium WebDriver.

Cette bibliothèque a été réécrite en 2014 pour soutenir Sélénium 2, et son API est principalement basée sur les liaisons officielles Java WebDriver. Cela signifie que vous pouvez également profiter des exemples de code écrit en Java, car ils peuvent généralement être simplement suivi en PHP. Il est écrit aussi d'une manière POO moderne et conforme à la norme PSR-4 espaces de noms et aussi des normes de codage PSR-2.

Je recommande cette bibliothèque sur phpunit-sélénium - comme il a été conçu à l'origine pour Sélénium 1 (bien qu'il supporte aujourd'hui sélénium 2) et son API est fortement serré pour PHPUnit. Elle soutient ne pas non plus quelques-unes des caractéristiques de WebDriver et ne sont pas mis à jour avec upcomin W3C spécification WebDriver .

Php-WebDriver est d'autre part bibliothèque indépendante, mais son intégration avec PHPUnit est assez simple - ou vous pouvez utiliser les outils existants comme Steward , qui comprend toute l'intégration de PHPUnit et de fournir aussi belle couche de commodité et par exemple. permettent d'exécuter simplement plusieurs tests en parallèle (sans besoin d'outils comme un autre paratest ).

Il y a aussi d'autres options d'intégration cadre de tests mentionnés sur la page d'accueil du projet .

PHPUnit un code d'intégration Sélénium vit comme un projet distinct dans github , pour autant que je peux voir il ne supporte pas sélénium 2, donc la réponse à votre question serait -. non, vous ne pouvez pas utiliser Selenium 2 avec PHPUnit

Mais vous pouvez cloner l'arbre source et le faire fonctionner avec Sélénium 2.

Nous avons créé une bibliothèque, j'espère que cela aide. Il utilise également le protocole de fil JSON, mais nous avons cherché à le rendre compatible avec les exemples d'autres langues, la syntaxe serait très similaire. Voici le lien: https://github.com/Nearsoft/PHP-SeleniumClient

Si vous l'aimez, partagez, l'améliorer ou de la fourche, il:)

Cordialement, Marc.

Liaisons phpunit de WebDriver sont hébergés sur le code Google. Il y a quelque chose que nous devons comprendre au-delà.

  1. PHPUnit doit être installé. (Soit par paquet PEAR ou télécharger et installer manuellement)
  2. PHP IDE tels que Eclipse PDT doit être téléchargé et installé.
  3. serveur Selenium-autonome doit être en cours d'exécution lors de l'exécution du test Selenium WebDriver

J'ai écrit un tutoriel sur la façon d'utiliser Selenium 2, wrapper Facebook, trouver ici:

http: //testigniter.blogspot. co.uk/2012/01/running-selenium-2-webdriver-using.html

Je Recommenéd l'utilisation de Menta , un cadre Sélénium 2 qui nécessite WebDriver . Les deux paquets sont PSR-0 compatibles, vous pouvez donc les utiliser avec le compositeur. Vous pouvez configurer le sélénium avec le phpunit.xml. Voici un exemple

<phpunit bootstrap="tests/bootstrap.php"
         backupGlobals="false" backupStaticAttributes="false"
         strict="true" verbose="true">
    <php>
        <var name="testing.selenium.seleniumServerUrl" value="http://localhost:4444/wd/hub" />
        <var name="testing.selenium.browser" value="firefox" />
        <var name="testing.selenium.windowPosition" value="0,0" />
        <var name="testing.selenium.windowSize" value="1280x1024" />
        <var name="testing.selenium.windowFocus" value="1" />
        <var name="testing.selenium.timeoutImplicitWait" value="10000" />
    </php>
    <testsuites>
        <testsuite name="Integrationstests">
            <directory suffix="Test.php" phpVersion="5.3.0" phpVersionOperator=">=">tests/integration</directory>
        </testsuite>
    </testsuites>
    <logging>
        <log type="junit" target="build/logs/junit.xml"/>
    </logging>
</phpunit>

Le fichier bootstrap lit les variables de configuration de testing.selenium. *, De sorte que vous pouvez facilement définir de nouvelles variables.

<?php

\Menta_ConfigurationPhpUnitVars::addConfigurationFile(__DIR__ . '/../phpunit.xml');

$configuration = \Menta_ConfigurationPhpUnitVars::getInstance();
\Menta_SessionManager::init(
    $configuration->getValue('testing.selenium.seleniumServerUrl'),
    $configuration->getValue('testing.selenium.browser')
);

Maintenant, vous pouvez facilement vous mettre en œuvre testcases. Voici un exemple

<?php

namespace tests\integration;

use WebDriver\LocatorStrategy;

class TestSearch extends \PHPUnit_Framework_TestCase
{
    public function testGoogle()
    {
        $session = \Menta_SessionManager::getSession();
        $session->open('http://www.google.de');
        $element = $session->element(LocatorStrategy::NAME, 'q');
        $this->assertTrue($element->displayed());
    }
}

Le paquet Menta ont également deux fichiers de démonstration, situés href="https://github.com/AOEmedia/Menta/tree/master/Demo"

Aujourd'hui a fait un bond en profondeur dans Sélénium et PHPUnit. Il est possible et vous pouvez trouver quelques exemples et des instructions sur ici: http://phpunit.de/manual/current/en/selenium.html

Créateur de PHPUnit a obtenu quelques beaux exemples de l'api. Avec un peu d'expérimentation et la lecture du message d'erreur, vous obtiendrez le long. Havn't trouvé une grande bibliothèque moi-même.

https://github.com/sebastianbergmann/phpunit- sélénium / blob / master / Tests / Selenium2TestCaseTest.php

dernier avec un tutoriel de Nettuts qui vous aide sur les bases: http://net.tutsplus.com/ tutoriels / php / how-to-use-sélénium-2-avec-PHPUnit /

Oui, Selenium 2 (WebDriver) et PHPUnit tests est simple. Mais je veux mai vous a donné des conseils que le premier, vous devriez être essayer Selenium IDE parce que vous devez attendre dans selenium command. Si vous êtes à attendre Selenium command si oui selenium 2 (Webdriver) et PHPUnit test sera plus simple pour vous.

Vous pouvez essayer des tutoriels selenium IDE sur et vous pouvez apprendre à selenium 2 (Webdriver) and PHPUnit .

Je travaille sur selenium2php . J'ai trop de tests pour Selenium1 enregistrés avec Selenium IDE. Maintenant, il convertit les tests html en Selenium2. En fait, pour PHPUnit_Extensions_Selenium2TestCase. Je vais mettre en œuvre plusieurs commandes.

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