Вопрос

Любой знает, как использовать Selenium 2 с phpunit? Есть ли образцы селена 2 в PHP?

Это было полезно?

Решение

Быстрое обновление: PHPUNIT теперь поддерживает Selenium 2


На момент написания PHPUNIT не поддерживает Selenium 2.

php-webdriver. от Facebook Позволяет заполнить API Webdriver быть вызванным из PHP элегантным способом. Цитировать:

Большинство клиентов требуют, чтобы вы сначала прочитали протокол, чтобы увидеть, что возможно, затем изучите себя клиенту, чтобы увидеть, как это позвонить. Это надеется устранить последний шаг.

Он используется с помощью сервера Selenium 2, который обеспечивает интерфейс в localhost:4444/wd/hub.

/usr/bin/java -jar /path/to/selenium-server-standalone-2.7.0.jar

Затем запустите тестовый код PHP, который вызывает этот интерфейс. Например:

<?php

require '/path/to/php-webdriver/__init__.php';

$webdriver = new WebDriver();

$session = $webdriver->session('opera', array());
$session->open("http://example.com");
$button = $session->element('id', 'my_button_id');
$button->click();
$session->close();

То WebDriver API сопоставлен с методами PHP, сравните звонок click на element В примере с элементом / вызовом API Click в документации.

Тестовый код может затем завернуть в обычные тесты PhPunit.

Это не встроенная поддержка PHPUNIT, но это довольно надежный подход.

Другие советы

Пожалуйста, посмотрите на http://code.google.com/p/php-webdriver-bindings/ Отказ Это библиотека PHP, которая связывается с сервером Webdriver Selenium, используя JSONWireProtocol. Это ранняя версия, но это работает.

В настоящее время (2017) я рекомендую использовать php-webdriver., То, что такое AFAIK, который больше всего функционально дополняет связывание языка PHP для взаимодействия с WebDriver Selenium.

Эта библиотека была переписана в 2014 году для поддержки Selenium 2, а его API в основном основана на официальных привязках Java Webdriver. Это означает, что вы также можете воспользоваться примерами кода, написанных в Java, поскольку их обычно можно просто использовать в PHP. Он также написан современным способом OOP и следует стандартным пространствам имен PSR-4, а также стандарты кодирования PSR-2.

Я бы порекомендовал эту библиотеку phpunit-selenium. - Как оно изначально было разработано для Selenium 1 (хотя в наше время поддержки селена 2) и его API сильно напрягается для phpunit. Это также не поддерживает некоторые функции Webdriver и не актуальны с UPCCOMIN Спецификация W3C Webdriver.

PHP-Webdriver находится в другой независимой библиотеке, но ее Интеграция с phpunit. довольно просто - или вы можете использовать существующие инструменты, такие как Стюард, который включает в себя все интеграцию PhPUnit и предоставляют также приятный удобный слой и, например,. Разрешить просто запустить несколько тестов параллельно (без необходимости других инструментов, таких как очаровательный).

Есть также другие варианты интеграции структуры тестирования, упомянутые на Домашняя страница проекта.

Интеграционный код Selenium Phpunit живет как отдельный проект в гадость, Насколько я вижу, это не поддерживает Selenium 2, поэтому ответ на ваш вопрос - нет, вы не можете использовать Selenium 2 с phpunit.

Но вы можете клонировать исходное дерево и сделать его работать с Selenium 2.

Мы создали библиотеку для этого, надеюсь, это поможет. Он также использует провод провода JSON, но мы стремились сделать его совместимым с примерами с других языков, поэтому синтаксис будет очень похожим. Вот ссылка: https://github.com/nearsoft/php-seleNiumClient.

Если вам это нравится, поделитесь этим, улучшите его или вилее :)

С уважением, отметка.

Привязки Webdriver Phpunit размещены в Google Code. Есть что-то, что нам нужно понять вне этого.

  1. PhPUnit должен быть установлен. (Либо через пакет груши или загрузить и установить вручную)
  2. PHP IDE, таких как Eclipse PDT, должен быть загружен и установлен.
  3. Сервер Selenium-Server должен быть запущен при выполнении теста селена Webdriver

Я написал учебное пособие о том, как использовать Selenium 2, Facebook Wrapper, найдите его здесь:

http://testigniter.blogspot.co.uk/2012/01/running-selenium-2-webdriver-using.html.

Я посоветовал использование Менталь, Selenium 2 Framework, которая требует WebDriver. Отказ Оба пакета являются PSR-0 совместимыми, поэтому вы можете использовать их с композитором. Вы можете настроить Selenium с помощью phpunit.xml. Вот пример

<phpunit bootstrap="tests/bootstrap.php"
         backupGlobals="false" backupStaticAttributes="false"
         strict="true" verbose="true">
    <php>
        <var name="testing.selenium.seleniumServerUrl" value="http://localhost:4444/wd/hub" />
        <var name="testing.selenium.browser" value="firefox" />
        <var name="testing.selenium.windowPosition" value="0,0" />
        <var name="testing.selenium.windowSize" value="1280x1024" />
        <var name="testing.selenium.windowFocus" value="1" />
        <var name="testing.selenium.timeoutImplicitWait" value="10000" />
    </php>
    <testsuites>
        <testsuite name="Integrationstests">
            <directory suffix="Test.php" phpVersion="5.3.0" phpVersionOperator=">=">tests/integration</directory>
        </testsuite>
    </testsuites>
    <logging>
        <log type="junit" target="build/logs/junit.xml"/>
    </logging>
</phpunit>

Файл Bootstrap читает переменные конфигурации от тестирования. Selenium. *, Чтобы вы могли легко установить новые переменные.

<?php

\Menta_ConfigurationPhpUnitVars::addConfigurationFile(__DIR__ . '/../phpunit.xml');

$configuration = \Menta_ConfigurationPhpUnitVars::getInstance();
\Menta_SessionManager::init(
    $configuration->getValue('testing.selenium.seleniumServerUrl'),
    $configuration->getValue('testing.selenium.browser')
);

Теперь вы можете легко реализовать вас TestCases. Вот пример

<?php

namespace tests\integration;

use WebDriver\LocatorStrategy;

class TestSearch extends \PHPUnit_Framework_TestCase
{
    public function testGoogle()
    {
        $session = \Menta_SessionManager::getSession();
        $session->open('http://www.google.de');
        $element = $session->element(LocatorStrategy::NAME, 'q');
        $this->assertTrue($element->displayed());
    }
}

Упаковка Menta также имеет две демонстрационные файлы, расположенные здесь

Сегодня А взял глубокий прыжок в селен и phpunit. Возможно, и вы можете найти несколько примеров и инструкций здесь:http://phpunit.de/manual/current/en/selenium.html.

Создатель PHPUNIT получил несколько приятных примеров API. С небольшим опытом и чтением сообщения об ошибке вы ладите. Не нашел саму отличной библиотеки.

https://github.com/sebastianbergmann/phpunit-selenium/blob/master/tests/selenium2testcasetest.php.

Как последний учебник с Nettutes, который помогает вам по основы:http://net.tutsplus.com/tutorials/php/how-to-use-selenium-2-with-phpunit/

Да, Selenium 2 (WebDriver) а также PHPUnit tests просто. Но могу я захочет дать вам совет, что первое вы должны попробовать Selenium IDE потому что вы должны ожидать в selenium command. Отказ Если вы ожидаете в Selenium command если так selenium 2 (Webdriver) а также PHPUnit test будет проще для вас.

Можешь попробовать selenium IDE Учебники дальше здесь и вы можете учиться selenium 2 (Webdriver) and PHPUnit в здесь.

я работаю на selenium2php.. Отказ У меня слишком много тестов для Selenium1, записанного с IDE Selenium. Теперь он преобразует HTML-тесты в Selenium2. На самом деле, для phpunit_extensions_selenium2Testcas. Я собираюсь реализовать больше команд.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top