Domanda

Uno sa come utilizzare Selenio 2 con PHPUnit? Ci sono selenio 2 campioni in PHP?

È stato utile?

Soluzione

Aggiornamento rapido: phpunit non supportano ora Selenio 2


Al momento della scrittura, PHPUnit non supporta Selenio 2.

php-WebDriver da facebook permette l'API WebDriver completa per essere chiamato da PHP in modo elegante. Per citare:

  

La maggior parte dei clienti richiedono di leggere prima il protocollo di vedere ciò che è   possibile, quindi studiare il cliente stesso per vedere come chiamarlo. Questo   speranze per eliminare quest'ultimo passo.

E 'utilizzato avviando il server Selenio 2, che fornisce l'interfaccia a localhost:4444/wd/hub.

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

poi eseguire il codice di prova di PHP, che chiama tale interfaccia. Ad esempio:

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

Il WebDriver API è mappato a metodi di PHP, confrontare chiamando click su element nell'esempio con la chiamata API elemento / click nella documentazione.

Il codice di prova può quindi essere avvolto in test PHPUnit regolare.

Questo non è il supporto nativo PHPUnit, ma è un approccio abbastanza robusto.

Altri suggerimenti

Si prega di guardare il http://code.google.com/p/php -webdriver-binding / . Si tratta di libreria PHP che comunica con server di selenio WebDriver utilizzando JsonWireProtocol. Questa è la versione iniziale, ma funziona.

Al momento (2017) mi consiglia di utilizzare php-WebDriver , per quanto ne so qual è la più caratteristica linguaggio PHP completo legame di interagire con selenio WebDriver.

Questa libreria è stata riscritta nel 2014 per sostenere Selenio 2, e la sua API è basata principalmente sulle legature ufficiali Java WebDriver. Questo significa che potete inoltre usufruire di esempi di codice scritto in Java, in quanto possono essere di solito semplicemente seguite in PHP. E 'anche scritto in un modo moderno e OOP segue standard di PSR-4 spazi dei nomi e anche PSR-2 standard di codifica.

mi sento di raccomandare questa libreria sopra phpunit-selenio - come è stato originariamente progettato per Selenio 1 (anche se oggigiorno supporta Selenio 2) e la sua API è fortemente aderente al PHPUnit. Inoltre non supporta alcune delle funzionalità WebDriver e non è up-to-date con upcomin W3C WebDriver specifiche .

Php-WebDriver è d'altra parte libreria indipendente, ma il suo integrazione con PHPUnit è abbastanza semplice - oppure è possibile utilizzare gli strumenti esistenti come Steward , che comprende tutta l'integrazione la PHPUnit e fornire anche bello strato di convenienza e, ad esempio. consentire a molteplici test eseguiti semplicemente in parallelo (senza necessità di ulteriori strumenti come paratest ).

Ci sono anche altre opzioni di integrazione framework di test menzionati nel homepage del progetto .

PHPUnit Selenio codice di integrazione vive come un progetto separato in github , per quanto posso vedere non supporta Selenio 2, quindi la risposta alla tua domanda sarebbe -. No, non è possibile utilizzare Selenio 2 con PHPUnit

Ma è possibile clonare l'albero dei sorgenti e farlo funzionare con selenio 2.

Abbiamo creato una libreria per questo, spero che aiuta. Esso utilizza anche il protocollo JSON Wire, ma abbiamo cercato di renderlo compatibile con gli esempi provenienti da altre lingue, quindi la sintassi sarebbe molto simile. Ecco il link: https://github.com/Nearsoft/PHP-SeleniumClient

Se ti piace, condividilo, migliorarlo o una forchetta esso:)

Saluti, Marco.

phpunit attacchi WebDriver sono ospitati su Google Code. C'è qualcosa che dobbiamo capire al di là di questo.

  1. PHPUnit deve essere installato. (Sia attraverso il pacchetto PEAR o scaricare e installare manualmente)
  2. PHP IDE come Eclipse PDT deve essere scaricato e installato.
  3. Il selenio-server autonomo deve essere in esecuzione durante l'esecuzione del test WebDriver Selenio

ho scritto un tutorial su come utilizzare Selenio 2, Facebook involucro, trovare qui:

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

I recommened l'utilizzo di Menta , a 2 quadro selenio che richiede WebDriver . Entrambi i pacchetti sono PSR-0 compatibile, in modo da poterli utilizzare con Composer. È possibile configurare il selenio con la phpunit.xml. Ecco un esempio

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

Il file di bootstrap legge le variabili di configurazione da testing.selenium. *, In modo da poter facilmente impostare nuove variabili.

<?php

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

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

Ora si può facilmente implementare voi casi di test. Ecco un esempio

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

Il pacchetto Menta hanno anche due file demo, che si trova qui

Oggi una ha preso un salto in profondità nel Selenio e PHPUnit. E 'possibile e si possono trovare alcuni esempi e istruzioni più qui: http://phpunit.de/manual/current/en/selenium.html

Creatore di phpunit ottenuto alcuni bei esempi di api. Con un po 'di sperimentazione e la lettura del messaggio di errore, si otterrà lungo. Havn't trovato una grande biblioteca me stesso.

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

Come un tutorial scorso, con da Nettuts che ti aiuta lungo le nozioni di base: http://net.tutsplus.com/ tutorial / php / how-to-use-selenio-2-con-PHPUnit /

Sì, Selenium 2 (WebDriver) e PHPUnit tests è semplice. Ma maggio voglio ti ha dato consigli che il primo si dovrebbe essere in prova Selenium IDE perché è necessario aspettare in selenium command. Se siete aspettarsi nel Selenium command in caso affermativo selenium 2 (Webdriver) e PHPUnit test sarà più semplice per voi.

Si può provare tutorial selenium IDE su qui e si può imparare a selenium 2 (Webdriver) and PHPUnit qui .

I lavori su selenium2php . Ho troppi test per Selenium1 registrati con Selenio IDE. Ora converte test html in Selenium2. In realtà, per PHPUnit_Extensions_Selenium2TestCase. Ho intenzione di implementare altri comandi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top