org openqa mac library espaƱol descargar php selenium phpunit selenium-webdriver

openqa - Selenium 2(WebDriver) y Phpunit?



selenium library java (11)

Actualmente (2017) recomiendo usar php-webdriver , lo que más AFAIK tiene es el enlace de lenguaje PHP completo para interactuar con Selenium WebDriver.

Esta biblioteca se reescribió en 2014 para admitir Selenium 2, y su API se basa principalmente en los enlaces oficiales de Java WebDriver. Esto significa que también puede aprovechar los ejemplos de código escritos en Java, ya que generalmente se pueden seguir simplemente en PHP. También está escrito en una forma OOP moderna y sigue los espacios de nombres estándar PSR-4 y también los estándares de codificación PSR-2.

Recomendaría esta biblioteca sobre phpunit-selenium , ya que fue diseñada originalmente para Selenium 1 (aunque actualmente admite Selenium 2) y su API es muy estrecha para PHPUnit. Tampoco es compatible con algunas de las características de WebDriver y no está actualizado con la especificación de W3C WebDriver .

Php-webdriver es, por otro lado, biblioteca independiente, pero su integración con PHPUnit es bastante simple, o puede usar herramientas existentes como Steward , que incluye toda la integración de PHPUnit y proporciona también una agradable capa de conveniencia y, por ejemplo. permite simplemente ejecutar múltiples pruebas en paralelo (sin necesidad de otras herramientas como paratest ).

También hay otras opciones de integración del marco de prueba mencionadas en la página principal del proyecto .

¿Alguien sabe cómo usar Selenium 2 con Phpunit? ¿Hay muestras de Selenio 2 en PHP?


Creamos una biblioteca para eso, espero que ayude. También utiliza el protocolo JSON Wire, pero nuestro objetivo era hacerlo compatible con los ejemplos de otros idiomas, por lo que la sintaxis sería muy similar. Aquí está el enlace: https://github.com/Nearsoft/PHP-SeleniumClient

Si te gusta, compártelo, mejora o bifurca :)

Saludos, Mark.


El código de integración de PHPUnit Selenium vive como un proyecto separado en github , por lo que puedo ver, no es compatible con Selenium 2, por lo que la respuesta a su pregunta sería: No, no puede usar Selenium 2 con PHPUnit.

Pero puedes clonar el árbol fuente y hacerlo funcionar con Selenium 2.



Hoy, dio un salto profundo en Selenium y phpunit. Es posible y puede encontrar algunos ejemplos e instrucciones aquí: http://phpunit.de/manual/current/en/selenium.html

Creador de phpunit tiene algunos buenos ejemplos de la api. Con un poco de experimentación y leyendo el mensaje de error, se llevará bien. Tampoco he encontrado una gran biblioteca.

https://github.com/sebastianbergmann/phpunit-selenium/blob/master/Tests/Selenium2TestCaseTest.php

Como último tutorial con NetTets que le ayuda a lo básico: http://net.tutsplus.com/tutorials/php/how-to-use-selenium-2-with-phpunit/


Los enlaces de phpunit webdriver están alojados en el código de google. Hay algo que debemos entender más allá de esto.

  1. PHPUnit necesita ser instalado. (A través del paquete PEAR o descarga e instala manualmente)
  2. Se debe descargar e instalar PHP IDE como Eclipse PDT.
  3. El servidor Selenium-Stand-Alone debe ejecutarse mientras se ejecuta la prueba WebDriver Selenium


Recomendé el uso de Menta , un Selenium 2 Framework que requiere instaclick/webdriver . Ambos paquetes son compatibles con PSR-0, por lo que puede usarlos con Composer. Puede configurar el selenio con phpunit.xml. Aquí un ejemplo

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

El archivo bootstrap lee las variables de configuración de testing.selenium. *, Por lo que puede establecer fácilmente nuevas 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'') );

Ahora puede implementar fácilmente sus testcases. Aquí un ejemplo

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

El paquete Menta también tiene dos archivos de demostración, que se encuentran here


Sí, las PHPUnit tests Selenium 2 (WebDriver) y PHPUnit tests son simples. Pero me gustaría darte consejos de que primero deberías probar Selenium IDE porque necesitas esperar en selenium command . Si espera Selenium command entonces selenium 2 (Webdriver) y la PHPUnit test serán más simples para usted.

Puede probar los tutoriales selenium IDE here y aprender sobre selenium 2 (Webdriver) and PHPUnit here .


Yo trabajo en selenium2php . Tengo demasiadas pruebas para Selenium1 grabado con Selenium IDE. Ahora convierte las pruebas html en Selenium2. En realidad, para PHPUnit_Extensions_Selenium2TestCase. Voy a implementar más comandos.


Actualización rápida: phpunit ahora es compatible con Selenium 2

En el momento de escribir, PHPUnit no es compatible con Selenium 2.

php-webdriver de facebook permite que la API de WebDriver completa sea llamada desde PHP de una manera elegante. Citar:

La mayoría de los clientes requieren que primero lea el protocolo para ver qué es posible, luego estudie al cliente para ver cómo llamarlo. Esto espera eliminar el último paso.

Se utiliza al iniciar el servidor Selenium 2, que proporciona la interfaz en localhost:4444/wd/hub .

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

luego ejecuta el código de prueba PHP, que llama a esa interfaz. Por ejemplo:

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

La API de WebDriver está asignada a los métodos de PHP, compare llamando click en el element en el ejemplo con el elemento / haga clic en API de la documentación.

El código de prueba puede ser envuelto en pruebas regulares de phpUnit.

Este no es el soporte de phpUnit nativo, pero es un enfoque bastante robusto.