web-dev-qa-db-fra.com

Comment utiliser Selenium avec PHP?

J'aimerais utiliser Selenium pour automatiser quelques tâches Web (pas pour les tests). Je pense avoir Selenium RC Server installé, mais je n’ai aucun moyen d’écrire des "scripts de test" car je ne trouve pas de pilote client dans PHP (voir: http://seleniumhq.org/download/ ).

Existe-t-il un moyen pour moi d'utiliser Selenium avec PHP? Cela semble suggérer que j'ai besoin de PHPUnit http://www.phpunit.de/manual/current/en/Selenium.html . Je veux juste automatiser quelques tâches et non m'impliquer dans une suite complète de tests.

14

Essayez de suivre les choses

  1. Obtenez Phpunit installé et fonctionne
  2. Ayez également Java SDK & JRE sur votre PC.
  3. Enregistrez maintenant les cas de test en utilisant Selenium IDE.
  4. Exportez les tests en fichiers php.
  5. L'utilisation de ces fonctions exportées crée une bibliothèque de scénarios de test.
  6. Créer une suite qui appelle les fonctions/tests depuis la bibliothèque.
  7. Maintenant, exécutez Démarrer Selenium Server en utilisant la commande Java.
  8. Utiliser phpunit Exécutez la suite.

pour référence comment écrire ces fichiers, cliquez sur ici et essayez également sur git hub

13
lAH2iV

facebook/php-webdriver est un client génial pour Selenium et php.

Vous pouvez l'utiliser pour automatiser des tâches Web (à la demande du PO), ou simplement intégrer php-webdriver à votre framework de test. Certains projets fournissent déjà ceci:


Tout installer

  1. Téléchargez et installez facebook/php-webdriver . composer require facebook/webdriver 

  2. Téléchargez Selenium & Start it. Java -jar Selenium-server-standalone-#.jar

  3. Téléchargez Quick Java et placez-le dans le répertoire de votre projet.


Usage

Dans cet exemple, nous utilisons l'extension quickjava pour tout désactiver sauf javascript et cookies.

Voir plus de paramètres de préférence ici:
https://github.com/ThatOneGuyDotNet/QuickJava/blob/master/defaults/preferences/defaults.js

Voir plus d'exemples de commandes ici:
https://github.com/facebook/php-webdriver/wiki/Example-command-reference

use Facebook\WebDriver\Firefox\FirefoxProfile;
use Facebook\WebDriver\Firefox\FirefoxDriver;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;

// Change this to the path of you xpi
$extensionPath = $this->container->getParameter('kernel.root_dir').'/../bin/Selenium/quickjava-2.0.6-fx.xpi';

// Build our firefox profile
$profile = new FirefoxProfile();
$profile->addExtension($extensionPath);
$profile->setPreference('thatoneguydotnet.QuickJava.curVersion', '2.0.6.1');
$profile->setPreference('thatoneguydotnet.QuickJava.startupStatus.Images', 2);
$profile->setPreference('thatoneguydotnet.QuickJava.startupStatus.AnimatedImage', 2);
$profile->setPreference('thatoneguydotnet.QuickJava.startupStatus.CSS', 2);
//$profile->setPreference('thatoneguydotnet.QuickJava.startupStatus.Cookies', 2);
$profile->setPreference('thatoneguydotnet.QuickJava.startupStatus.Flash', 2);
$profile->setPreference('thatoneguydotnet.QuickJava.startupStatus.Java', 2);
//$profile->setPreference('thatoneguydotnet.QuickJava.startupStatus.JavaScript', 2);
$profile->setPreference("thatoneguydotnet.QuickJava.startupStatus.Silverlight", 2);

// Create DC + Driver
$dc = DesiredCapabilities::firefox();
$dc->setCapability(FirefoxDriver::PROFILE, $profile);

$driver = RemoteWebDriver::create($Host, $dc);
$driver->get('http://stackoverflow.com');

// Do stuff - https://github.com/facebook/php-webdriver/wiki/Example-command-reference
//$driver->findElement(WebDriverBy::id("element-id"));

// The HTML Source code
$html = $driver->getPageSource();

// Firefox should be open and you can see no images or css was loaded
17
Anil

Le serveur Selenium doit être en cours d'exécution et une bibliothèque de pilotes Web pour interagir avec celui-ci. 

Officiellement, Selenium ne prend pas en charge PHP, mais Nearsoft a créé une bibliothèque pour interagir avec le protocole Json Wire. Nous voulions le rendre aussi semblable que possible aux exemples d’autres langages et de pilotes du site officiel afin qu’un exemple tiré de la page en Java ait une syntaxe très similaire en php.

Découvrez-le: https://github.com/Nearsoft/PHP-SeleniumClient

Si vous l'aimez, partagez-le, impliquez-vous, donnez-le à la fourchette ou faites comme bon vous semble.

Cordialement, Mark.

1
markdrake

Je pense que le gars a principalement demandé comment utiliser IDE fichiers générés.

Il existe un formateur pour PHP: il ne vous reste plus qu'à exporter en tant que PHPunit.

Selenium IDE: PHP Formatters :: Add-ons pour Firefox https://addons.mozilla.org/en-US/firefox/addon/Selenium-ide-php-formatters/

0
Nadir

Veuillez vérifier ce lien: http://mvnrepository.com/artifact/org.seleniumhq.Selenium.client-drivers

Cliquez sur le lien Selenium-php-client-driver pour obtenir le binaire

0
user766038