Подтвердить что ты не робот

Selenium 2 (WebDriver) и Phpunit?

Кто-нибудь знает, как использовать Selenium 2 с Phpunit? Существуют ли образцы Selenium 2 в PHP?

4b9b3361

Ответ 1

Быстрое обновление: 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();

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

Затем тестовый код можно обернуть в обычные тесты phpUnit.

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

Ответ 2

просмотрите http://code.google.com/p/php-webdriver-bindings/. Это библиотека PHP, которая взаимодействует с сервером Selenium Webdriver с помощью JsonWireProtocol. Это ранняя версия, но она работает.

Ответ 3

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

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

Я бы порекомендовал эту библиотеку над phpunit-selenium - поскольку он был первоначально разработан для Selenium 1 (хотя в настоящее время он поддерживает Selenium 2) и его API сильно связан с PHPUnit. Он также не поддерживает некоторые функции WebDriver и не обновляется с upcomin спецификация W3C WebDriver.

Php-webdriver - это, с другой стороны, независимая библиотека, но ее интеграция с PHPUnit довольно проста - или вы можете использовать существующие инструменты, такие как Steward, который включает в себя всю интеграцию PHPUnit и обеспечивает также удобный уровень удобства и, например. позволяют просто запускать несколько тестов параллельно (без необходимости использования других инструментов, таких как paratest).

Существуют также другие варианты интеграции платформы тестирования, упомянутые на странице .

Ответ 4

Код интеграции PHPUnit Selenium живет как отдельный проект в github, насколько я вижу, он не поддерживает Selenium 2, поэтому ответ на ваш вопрос будет: Нет, вы не можете использовать Selenium 2 с PHPUnit.

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

Ответ 5

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

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

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

Ответ 6

привязки webpriver phpunit размещаются в коде google. Нам нужно что-то понять за этим.

  • Необходимо установить PHPUnit. (Либо через пакет PEAR, либо загрузить и установить вручную).
  • Необходимо загрузить и установить PHP IDE, такую ​​как Eclipse PDT.
  • Сервер Selenium-Stand-Alone должен работать при выполнении теста WebDriver Selenium

Ответ 8

Я рекомендовал использовать Menta, Selenium 2 Framework, для которого требуется WebDriver. Оба пакета совместимы с PSR-0, поэтому вы можете использовать их вместе с Composer. Вы можете настроить селен с помощью 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>

Загрузочный файл считывает переменные конфигурации из test.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')
);

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

<?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 также есть два демонстрационных файла, расположенных здесь

Ответ 9

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

Создатель phpunit получил несколько приятных примеров api. Немного экспериментируя и читая сообщение об ошибке, вы поедете. Не нашел и большую библиотеку.

https://github.com/sebastianbergmann/phpunit-selenium/blob/master/Tests/Selenium2TestCaseTest.php

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

Ответ 10

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

Вы можете попробовать Selenium IDE учебники по здесь, и вы можете узнать selenium 2 (Webdriver) and PHPUnit на .

Ответ 11

Я работаю над selenium2php. У меня слишком много тестов для Selenium1, записанных с помощью Selenium IDE. Теперь он преобразует html-тесты в Selenium2. Собственно, для PHPUnit_Extensions_Selenium2TestCase. Я собираюсь выполнить больше команд.