Selenio 2 (WebDriver) y PHPUnit?
-
25-09-2019 - |
Pregunta
Cualquiera sabe cómo utilizar Selenio 2 con PHPUnit? ¿Hay Selenio 2 muestras en PHP?
Solución
actualización rápida: PHPUnit no apoyan ahora Selenio 2
En el momento de la escritura, PHPUnit no soporta Selenio 2.
php-WebDriver de facebook permite a la API WebDriver completa a llamarse desde PHP de una manera elegante. Para citar a:
La mayoría de los clientes que requieren leer primero el protocolo para ver lo que hay posible, entonces estudiar el propio cliente para ver cómo llamarlo. Esta esperanzas para eliminar el último paso.
Es utilizado por la puesta en marcha 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
a continuación, ejecutar 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();
El WebDriver API se asigna a los métodos PHP, comparar llamando click
en element
en el ejemplo con la llamada a la API elemento / clic en la documentación.
El código de prueba puede entonces ser envuelto en pruebas PHPUnit regulares.
Esto no es el apoyo PHPUnit nativa, pero es un enfoque bastante robusto.
Otros consejos
Por favor mirar el http://code.google.com/p/php -webdriver-fijaciones / . Esta es la biblioteca PHP que se comunica con el servidor usando selenio WebDriver JsonWireProtocol. Esta es la versión temprana, pero funciona.
En la actualidad (2017) Recomiendo el uso de php-WebDriver , lo que es yo sepa el más característica completa lenguaje PHP vinculante para interactuar con selenio WebDriver.
Esta biblioteca se volvió a escribir en 2014 para apoyar Selenio 2, y su API se basa principalmente en los enlaces oficiales de Java WebDriver. Esto significa que también pueden aprovechar los ejemplos de código escrito en Java, ya que pueden ser por lo general simplemente siguieron en PHP. También es escrito en una forma moderna y programación orientada a objetos estándar sigue PSR-4 espacios de nombres y también 2 PSR-estándares de codificación.
Yo recomendaría esta biblioteca sobre PHPUnit-selenio - ya que fue diseñado originalmente para el Selenio 1 (a pesar de que hoy en día apoyan selenio 2) y su API es fuertemente apretada a PHPUnit. También no es compatible con algunas de las características WebDriver y no está al día con upcomin W3C WebDriver especificación .
PHP-WebDriver está en el otro lado de la biblioteca independiente, pero su integración con PHPUnit es bastante simple - o puede utilizar las herramientas existentes como Steward , que incluye toda la integración del PHPUnit y proporcionar también agradable capa de comodidad y, por ejemplo. permitir a múltiples pruebas sólo tiene que ejecutar en paralelo (sin necesidad de otras herramientas como paratest ).
También hay otras opciones de integración marco de pruebas mencionadas en el href="https://github.com/facebook/php-webdriver/#testing-framework-integration" rel="nofollow noreferrer"> página principal del proyecto .
código de integración PHPUnit selenio vive como un proyecto separado en github , por lo que yo puedo ver no es compatible con selenio 2, por lo que la respuesta a su pregunta sería -. no, no se puede utilizar selenio 2 con PHPUnit
Pero se puede clonar el árbol de fuentes y hacer que funcione con Selenio 2.
crea una biblioteca para que, espero que ayude. También utiliza el protocolo JSON alambre pero dirigido para que sea 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, compartir, mejorarlo o un tenedor que:)
Saludos, Marcos.
PHPUnit fijaciones WebDriver están alojados en Google Code. Hay algo que tenemos que entender más allá de esto.
- PHPUnit necesita ser instalado. (Ya sea a través del paquete de PEAR o descargar e instalar manualmente)
- PHP IDE como Eclipse PDT tiene que ser descargado e instalado.
- El selenio-servidor independiente tiene que estar en ejecución durante la ejecución de la prueba WebDriver Selenio
Me escribió un tutorial sobre el uso de selenio 2, Facebook envoltura, encontrar aquí:
http: //testigniter.blogspot. co.uk/2012/01/running-selenium-2-webdriver-using.html
I recommened el uso de Menta , un Marco Selenio 2 que requiere WebDriver . Ambos paquetes son compatibles PSR-0, para que pueda utilizarlos con el compositor. Puede configurar el selenio con el 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 de arranque lee las variables de configuración de testing.selenium. *, Por lo que se pueden crear 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 se puede implementar fácilmente que los casos de prueba. 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 encuentra aquí
Hoy en día una tomó un salto profundamente en Selenio y PHPUnit. Es posible y es posible encontrar algunos ejemplos e instrucciones más 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 de leer el mensaje de error, obtendrá lo largo. Havn't encontró una gran biblioteca de mí mismo.
Como un tutorial pasado con Nettuts de que le ayuda a lo largo de los conceptos básicos: http://net.tutsplus.com/ tutoriales / php / cómo-a-uso-selenio-2-con-PHPUnit /
Sí, Selenium 2 (WebDriver)
y PHPUnit tests
es simple. Pero de mayo Quiero que dio consejos que la primera debe ser Selenium IDE
intentarlo porque hay que esperar en selenium command
. Si usted está en espera de ser así Selenium command
selenium 2 (Webdriver)
y PHPUnit test
será más sencillo para ti.
Puede probar tutoriales selenium IDE
en aquí y se puede aprender selenium 2 (Webdriver) and PHPUnit
aquí .
selenium2php . Tengo demasiadas pruebas para selenium1 grabados con Selenio IDE. Ahora se convierte pruebas HTML en Selenium2. En realidad, para PHPUnit_Extensions_Selenium2TestCase. Voy a poner en práctica más comandos.