Selen 2 (WebDriver) und PHPUnit?
-
25-09-2019 - |
Frage
Jeder weiß, wie Selen 2 mit PHPUnit benutzen? Gibt es Selen 2 Proben in PHP?
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.
- muss PHPUnit installiert werden. (Entweder über PEAR-Paket oder herunterladen und manuell installieren)
- PHP IDE wie Eclipse PDT heruntergeladen und installiert werden.
- 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());
}
}
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.
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.