Как использовать Selenium с PHP? - PullRequest
14 голосов
/ 06 июля 2011

Я бы хотел использовать Selenium для автоматизации нескольких веб-задач (не для тестирования). Я думаю, что у меня установлен Selenium RC Server, но у меня нет возможности написать «тестовые сценарии», так как я не могу найти драйвер клиента в PHP (см .: http://seleniumhq.org/download/).

Можно ли мне использовать Selenium с PHP? Кажется, это говорит о том, что мне нужен PHPUnit http://www.phpunit.de/manual/current/en/selenium.html. Я просто хочу автоматизировать несколько задач, а не участвовать в полном наборе тестов.

Ответы [ 5 ]

17 голосов
/ 12 ноября 2015

facebook / php-webdriver - отличный клиент для селена и php.

Вы можете использовать его для автоматизации веб-задач (как требуется ОП) или просто интегрировать php-webdriver в вашу среду тестирования. Некоторые проекты уже предоставляют это:


Установить все

  1. Загрузите и установите facebook / php-webdriver . composer require facebook/webdriver

  2. Загрузите Selenium и запустите его. java -jar selenium-server-standalone-#.jar

  3. Загрузите Quick Java и поместите его в каталог вашего проекта.


Использование

В этом примере мы используем расширение quickjava, чтобы отключить все, кроме javascript и cookies.

Посмотреть дополнительные настройки здесь:
https://github.com/ThatOneGuyDotNet/QuickJava/blob/master/defaults/preferences/defaults.js

Просмотреть другие примеры команд здесь:
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
14 голосов
/ 07 июля 2011

Попробуйте выполнить следующие действия

  1. Установите Phpunit, установленный и работающий
  2. Также установите на своем компьютере JAVA sdk & jre.
  3. Теперь записывайте тестовые случаи, используя IDE Селена.
  4. Экспорт тестовых примеров в файлы php.
  5. Использование этих экспортированных функций создает библиотеку тестовых случаев.
  6. Создание набора, который вызывает функции / тесты из библиотеки.
  7. Теперь для запуска Start Selenium Server с помощью команды java.
  8. Использование phpunit. Выполните комплект.

, чтобы узнать, как записать эти файлы, нажмите здесь итакже попробуйте на git hub

1 голос
/ 31 мая 2012

Вам нужен работающий сервер selenium и библиотека веб-драйверов для взаимодействия с ним.

Официально селен не поддерживает PHP, но в Nearsoft мы создали библиотеку для взаимодействия с протоколом Json Wire. Мы стремились сделать его максимально похожим на примеры из других языков и драйверов с официального сайта, чтобы пример со страницы на Java имел очень похожий синтаксис в php.

Проверьте это: https://github.com/Nearsoft/PHP-SeleniumClient

Если вам это нравится, поделитесь им, присоединяйтесь, раскошелитесь или делайте как хотите.

С уважением, Марк.

0 голосов
/ 29 августа 2016

Я думаю, что парень спросил в основном, как использовать файлы, созданные в IDE.

Существует форматер для PHP: вам просто нужно экспортировать как PHPunit.

Selenium IDE: PHP Formatters :: Дополнения для Firefox https://addons.mozilla.org/en-US/firefox/addon/selenium-ide-php-formatters/

0 голосов
/ 06 июля 2011

Пожалуйста, проверьте эту ссылку: http://mvnrepository.com/artifact/org.seleniumhq.selenium.client-drivers

Нажмите на ссылку selenium-php-client-driver, чтобы получить двоичный файл

...