Frage

Jeder weiß, wie Selen 2 mit PHPUnit benutzen? Gibt es Selen 2 Proben in PHP?

War es hilfreich?

Lösung

Quick Update: phpunit unterstützt jetzt Selen 2


Zum Zeitpunkt des Schreibens, ist PHPUnit nicht unterstützt Selen 2.

php-WebDriver von facebook ermöglicht die komplette WebDriver API von PHP auf elegante Weise aufgerufen werden. Zu zitieren:

  

Die meisten Kunden benötigen Sie zunächst das Protokoll zu lesen, um zu sehen, was   möglich, studieren dann den Client selbst zu sehen, wie es nennen. Dies   Hoffnungen den letzten Schritt zu beseitigen.

Es wird verwendet, um den Selen-2-Server gestartet wird, die die Schnittstelle an localhost:4444/wd/hub bietet.

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

dann den PHP-Testcode ausgeführt wird, die diese Schnittstelle aufruft. Zum Beispiel:

<?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();

Die WebDriver API auf PHP Methoden abgebildet, zu vergleichen Aufruf click auf element im Beispiel mit dem Elemente / Klick-API-Aufruf in der Dokumentation.

Der Testcode kann dann in regelmäßigen PHPUnit Tests gewickelt werden.

Dies ist nicht einheimisch PHPUnit Unterstützung, aber es ist ein recht robust Ansatz.

Andere Tipps

Bitte schauen Sie auf der http://code.google.com/p/php -webdriver-Bindungen / . Dies ist PHP-Bibliothek, die in Verbindung steht mit Selenium WebDriver Server JsonWireProtocol verwenden. Dies ist eine frühe Version, aber es funktioniert.

Zur Zeit (2017) Ich empfehle, mit php-WebDriver , was AFAIK ist das Merkmal komplette PHP-Sprache mit Selen WebDriver zu interact Bindung.

Diese Bibliothek im Jahr 2014 neu geschrieben 2 Selen zu unterstützen und seine API ist vor allem auf der Grundlage der offiziellen Java WebDriver Bindungen. Das heißt, Sie können auch die Vorteile von Codebeispiele nehmen in Java geschrieben, wie sie in der Regel nur in PHP gefolgt werden kann. Es ist auch in einer modernen OOP Art und Weise geschrieben und folgt Standard PSR-4-Namespaces und auch PSR-2 Coding-Standards.

würde ich diese Bibliothek empfehlen über phpunit-Selen - wie es ursprünglich für Selen entwickelt wurde 1 (obwohl es Unterstützung heutzutage Selen 2) und seine API ist stark und fest zu PHPUnit. Es ist auch nicht einige der WebDriver Funktionen unterstützt und ist nicht up-to-date mit upcomin W3C WebDriver Spezifikation .

Php-WebDriver sind auf der anderen Seite unabhängige Bibliothek, aber die Integration mit PHPUnit ist ganz einfach - oder Sie können vorhandene Werkzeuge verwenden wie Steward , die alle die PHPUnit Integration beinhaltet und bieten auch schöne Bequemlichkeit Schicht und zB. lassen Sie einfach mehrere Tests parallel ausführen (ohne die Notwendigkeit von weiteren Tools wie paratest ).

Es gibt auch andere Test-Framework Integrationsmöglichkeiten erwähnt auf der Projekthomepage .

PHPUnit Selen Integrationscode lebt als separates Projekt in Github , soweit ich sehen kann, es unterstützt nicht Selen 2, so dass die Antwort auf Ihre Frage wäre -. Nein, du nicht Selen 2 mit PHPUnit verwenden

Aber Sie können den Quellbaum klonen und machen es mit Selen 2 arbeiten.

Wir für die Bibliothek erstellt, ich hoffe, es hilft. Es nutzt auch das JSON-Wire-Protokoll, aber wir sollten, um es mit den Beispielen aus anderen Sprachen kompatibel zu machen, so dass die Syntax sehr ähnlich sein würde. Hier ist der Link: https://github.com/Nearsoft/PHP-SeleniumClient

Wenn Sie mögen es, teilen sie, verbessern sie oder Gabel es:)

Viele Grüße, Mark.

phpunit WebDriver Bindungen sind auf Google Code gehostet. Es ist etwas, das wir darüber hinaus verstehen müssen.

  1. muss PHPUnit installiert werden. (Entweder über PEAR-Paket oder herunterladen und manuell installieren)
  2. PHP IDE wie Eclipse PDT heruntergeladen und installiert werden.
  3. Selenium-Stand-Alone-Server hat ausgeführt werden, während die WebDriver Selenium Test Ausführung

Ich schrieb ein Tutorial darüber, wie 2 Selen zu verwenden, Facebook-Wrapper, finden sie hier:

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

recommened ich die Verwendung von Menta , ein Selen 2 Rahmen der WebDriver . Beide Pakete sind PSR-0 kompatibel, so dass Sie sie mit Composer verwenden können. Sie können Selen mit dem phpunit.xml konfigurieren. Hier ist ein Beispiel

<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>

Die Bootstrap-Datei liest die Konfigurationsvariablen von testing.selenium. * So können neue Variablen festlegen können.

<?php

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

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

Jetzt können Sie leicht implementieren Sie Testfälle. Hier ist ein Beispiel

<?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());
    }
}

Das Menta Package haben auch zwei Demo-Dateien, befindet

Heute hat eine tief Sprung in Selen und PHPUnit. Es ist möglich, und Sie können einige Beispiele und Anweisungen über finden Sie hier: http://phpunit.de/manual/current/en/selenium.html

Schöpfer von phpunit bekamen ein paar schöne Beispiele für die api. Mit ein wenig Experimentieren und die Fehlermeldung zu lesen, erhalten Sie zusammen. Vollständige Version anzeigen eine große Bibliothek selbst als gut.

https://github.com/sebastianbergmann/phpunit- Selen / Blob / Master / Tests / Selenium2TestCaseTest.php

Als letztes ein Tutorial mit von Nettuts, die Sie an den Grundlagen hilft: http://net.tutsplus.com/ tutorials / php / how-to-use-Selen-2-mit-phpunit /

Ja, Selenium 2 (WebDriver) und PHPUnit tests ist einfach. Aber Mai möchte ich gab Ihnen Rat, dass die erste sollten Sie versuchen, Selenium IDE sein, weil Sie in selenium command erwarten müssen. Wenn Sie in Selenium command erwarten, wenn so selenium 2 (Webdriver) und PHPUnit test wird für Sie einfacher sein.

Sie können versuchen, selenium IDE Tutorials auf hier und Sie können selenium 2 (Webdriver) and PHPUnit lernen auf hier .

ich die Arbeit an selenium2php . Ich habe zu viele Tests für selenium1 mit Selenium IDE aufgezeichnet. Jetzt wandelt sie html Tests in Selenium2. Eigentlich für PHPUnit_Extensions_Selenium2TestCase. Ich werde mehr Befehle implementieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top