Pregunta

Cualquiera sabe cómo utilizar Selenio 2 con PHPUnit? ¿Hay Selenio 2 muestras en PHP?

¿Fue útil?

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.

  1. PHPUnit necesita ser instalado. (Ya sea a través del paquete de PEAR o descargar e instalar manualmente)
  2. PHP IDE como Eclipse PDT tiene que ser descargado e instalado.
  3. 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.

https://github.com/sebastianbergmann/phpunit- selenio / blob / master / pruebas / Selenium2TestCaseTest.php

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top