2011-07-06 10 views
12

Chciałbym użyć Selenium do automatyzacji kilku zadań internetowych (nie do testowania). Myślę, że mam zainstalowany serwer Selenium RC, ale nie mam możliwości pisania "skryptów testowych", ponieważ nie mogę znaleźć sterownika klienta w PHP (zobacz: http://seleniumhq.org/download/).Jak korzystać z selenu w PHP?

Czy istnieje sposób, aby używać Selenium z PHP? Wydaje się sugerować, że potrzebuję PHPUnit http://www.phpunit.de/manual/current/en/selenium.html. Chcę zautomatyzować kilka zadań, nie angażować się w pełny zestaw testów.

Odpowiedz

11

Spróbuj następujące rzeczy

  1. Get PHPUnit zainstalowany i pracy
  2. Również JAVA sdk & jre na komputerze.
  3. Teraz rejestruj przypadki testowe przy użyciu selenu IDE.
  4. Wyeksportuj testcases do plików php.
  5. Korzystanie z tych wyeksportowanych funkcji tworzy bibliotekę przypadków testowych.
  6. Utwórz pakiet wywołujący funkcje/testy z biblioteki.
  7. Teraz, aby uruchomić serwer Start Selenium za pomocą polecenia java.
  8. Korzystanie z funkcji phpunit Wykonaj pakiet.

dla refrence jak napisać te pliki kliknij here a także przymierzyć git huba

+1

Biblioteka [php-webdriver] (https://github.com/facebook/php-webdriver) jest po prostu wystarczająca, a konfiguracja może być jeszcze łatwiejsza dzięki narzędziom, takim jak [Steward] (https://github.com/lmc-eu/steward). Sugerowałbym, aby nie marnować czasu w Selenium IDE i po prostu napisać pożądany scenariusz w PHP. –

0

Proszę sprawdzić ten link: http://mvnrepository.com/artifact/org.seleniumhq.selenium.client-drivers

Kliknij na link selen-php-client-kierowcy, aby uzyskać binarny

+0

Jest to plik JAR. Jak sprawić, by działał z PHP? – StackOverflowNewbie

+0

zainstalować słoik w selen ... –

+1

Marc - Zwykle nie pracuję z Javą, więc jestem nieco zdezorientowany tym plikiem binarnym JAR. Jak zainstalować ten plik JAR w Selenie? Jak mogę uruchomić skrypty Selenese z PHP? – StackOverflowNewbie

1

Trzeba serwer działa selen oraz bibliotekę sterowników internetowej interakcji z nim.

Oficjalnie selen nie obsługuje PHP, ale w Nearsoft stworzyliśmy bibliotekę do interakcji z protokołem Json Wire. Naszym celem było uczynienie go jak najbardziej zbliżonym do przykładów z innych języków i sterowników z oficjalnej strony, więc przykład ze strony w Javie miałby bardzo podobną składnię w php.

Sprawdź: https://github.com/Nearsoft/PHP-SeleniumClient

Jeśli Ci się spodoba, podziel się nim, angażować, widelec go lub zrobić jak należy.

Pozdrawiam, Mark.

12

facebook/php-webdriver to świetny klient dla selenu i php.

Można go używać do automatyzacji zadań internetowych (zgodnie z oczekiwaniami PO) lub po prostu można zintegrować php-webdriver z ramą testową. Są tacy, projekt już zapewniając w ten sposób:


zainstalować wszystko

  1. Pobierz i zainstaluj facebook/php-webdriver. composer require facebook/webdriver

  2. Download Selenium & Uruchom. java -jar selenium-server-standalone-#.jar

  3. Download Quick Java i umieść go w katalogu projektu.


Wykorzystanie

W tym przykładzie używamy rozszerzenie quickjava wyłączyć wszystko oprócz javascript i cookies.

Zobacz więcej Ustawienia preferencji tutaj:
https://github.com/ThatOneGuyDotNet/QuickJava/blob/master/defaults/preferences/defaults.js

zobacz więcej Przykładowe polecenia tutaj:
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