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

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

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

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

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

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

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

Вы можете использовать его для автоматизации веб-задач (по желанию OP), или вы можете просто интегрировать php-webdriver в свою тестовую среду. Уже есть какой-то проект:

  • Стюард интегрирует php-webdriver непосредственно в PHPUnit .
  • Структура тестирования кода обеспечивает BDD-слой поверх php-webdriver.
  • Вы также можете проверить этот демо-проект blogpost +, описывающий собственную интеграцию PHPUnit .

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

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

  2. Загрузите Selenium & Start it. 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 функции 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 функции 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 

Вам нужно, чтобы сервер selenium работал и библиотека веб-драйверов взаимодействовала с ним.

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

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

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

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

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

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

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

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

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