Как использовать Selenium с PHP?

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

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


person StackOverflowNewbie    schedule 06.07.2011    source источник


Ответы (4)


Попробуйте следовать за вещами

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

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

person lAH2iV    schedule 07.07.2011
comment
Библиотеки php-webdriver достаточно просто, а установка может быть еще проще с помощью инструментов например, Стюард. Я бы посоветовал не тратить время на Selenium IDE и просто написать желаемый сценарий прямо на PHP. - person Ondrej Machulda; 13.02.2017
comment
Ответ здесь сейчас сильно показывает его возраст. В 2019 году необходимость в каком-либо участии Java отпала. Для использования Selenium вам никогда не требовался PHPUnit - это инструмент для запуска тестов, а не для автоматизации браузера. Как Selenium, так и стандарт W3C для веб-автоматизации основаны на REST API, поэтому наличие библиотеки помогает, но речь идет только о выполнении HTTP-запросов - например, см. makandracards.com/makandra/ - person symcbean; 09.01.2019
comment
Это ссылка sebastian-bergmann.de/archives/ вернуть 404 - не найдено. - person Márcio Rossato; 17.06.2019
comment
Этот ответ слишком старый. Ниже ответ - лучшее решение на данный момент. - person lAH2iV; 18.06.2019

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

Вы можете использовать его для автоматизации веб-задач (по желанию OP) или просто интегрировать 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
person Anil    schedule 11.11.2015
comment
Примечание: facebook / php-webdriver был переименован в php-webdriver / php-webdriver - person Akmal; 27.05.2020

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

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

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

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

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

person markdrake    schedule 31.05.2012

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

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

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

person Nadir    schedule 29.08.2016
comment
Я считаю, что это не поддерживает Selenium IDE v2. - person icc97; 16.11.2016