Где heck - любая документация Selenium 2 для PHPUnit?

У меня есть разочарование, пытаясь найти любую информацию о Selenium 2 для PHPUnit, за исключением исходного кода и тестов, которые я могу "просмотреть", чтобы "понять это". Кажется, что каждый любимый

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

... но, конечно, мне не нужно выкапывать сотни строк источника, чтобы получить ответы на простые вопросы? Где я могу найти руководство для начинающих, базовую документацию или что-нибудь еще?

Ответы

Ответ 1

Достиг Ах-ха. Будет пост для следующей бедной души, блуждающей в этих пустынных областях смятения.

Когда Selenium говорит "Selenium 2", они любят говорить "Selenium 2 = Selenium server + WebDriver".

Трюк для пользователя PHPUnit - это часть WebDriver, которая не совсем в PHPUnit. Selenium написал WebDrivers на нескольких других языках, а сторонние - для PHP, которые я не пробовал, так как на данный момент я нацелен на PHPUnit. WebDriver - это в основном способ работать в DOM и захватывать элементы. Он получил хорошее сокращение в http://docs.seleniumhq.org/docs/03_webdriver.jsp.

Когда PHPUnit говорит "Selenium 2", они означают, что они написали классы, которые выполняют большую часть материала в WebDriver, но они не называют его WebDriver, они называют его Selenium 2.

Из-за исходной версии PHPUnit их методы называются немного иначе, чем версии Java или С#. Вот почему все так волнуются о тестовом примере PHPUnit, поскольку он позволяет легко угадать, что вы ищете, после того как вы нашли метод, который вы хотите в документах webdriver.

В противном случае, по-видимому, большинство других функций в PHPUnit привязаны к оригинальной вещи SeleniumTestCase; Я собрал несколько ссылок ниже, чтобы централизовать мою информацию несколько. Селен 1 не "мертв", но он старый. PHPUnit по-прежнему использует много архитектуры от реализации Selenium 1, а PHPUnit Selenium 2 на самом деле не такой, но вроде Selenium 1 ++.

Итак, нет причин идти на охоту через источник, просто попробуйте сопоставить тестовые примеры PHPUnit с документами WebDriver. Кроме того, несколько методов в учебнике для SeleniumTestCase изменили имена в Selenium2TestCase, но не боятся, вещь все равно работает одинаково, просто немного запутано.

Вы можете спросить: "Почему бы просто не использовать SeleniumTestCase?" Ну, похоже, что для поддержки других браузеров требуется WebDriver, поэтому, если вы хотите выйти из Firefox, вам понадобится Selenium2TestCase (я могу ошибаться).


Вот некоторые полезные ссылки, которые я нашел, когда я отскочил от этого:


Чтобы решить мой вопрос с несколькими браузерами выше, все еще можно использовать статический шаблон $browser из SeleniumTestCase, но индекс browser изменился на browserName:

public static $browsers = array(
    array(
        'name'    => 'Internet Explorer',
        'browserName' => 'iexplore',   // not 'browser'
        'host'    => 'localhost',
        'port'    => 4444,
        'timeout' => 30000,
    ),
};

Обратите внимание, что Phing не поддерживает тег <selenium>, если вы используете конфигурацию XML.

Ответ 2

Я только что прошел через тот же процесс и написал эту статью как ссылку для себя и других:

http://scipilot.org/blog/2013/06/30/re-learning-unit-testing-selenium-2-phpunit-selenium/

Похоже, что вы уже ответили на большинство моих открытий, но, по крайней мере, вы будете чувствовать себя менее одинокими в своем расстройстве!

Ответ 3

Расширение PHPUnit Selenium (содержащее Selenium2TestCase и т.д.) больше не является частью самого проекта PHPUnit - теперь это автономное расширение , который также должен быть явно установлен (т.е. он не является частью дистрибутива PHPUnit). Однако, как представляется, не существует какой-либо документации даже для отдельного расширения.

Также это расширение больше не активно разрабатывается и частично не обновляется с последними изменениями в протоколе WebDriver.

Чтобы использовать Selenium с PHPUnit, вы можете использовать другие инструменты на основе php-webdriver:

  • Steward, который интегрирует php-webdriver непосредственно в PHPUnit, поэтому вы можете напрямую управлять Selenium из своих тестов.
  • Codeception среда тестирования, которая обеспечивает BDD-слой поверх php-webdriver и PHPUnit