Где, черт возьми, есть документация по Selenium 2 для PHPUnit?


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

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

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

Author: Ben, 2013-10-01

3 answers

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

Когда Селен говорит "Селен 2", они любят говорить "Селен 2 = сервер Селена + веб-драйвер".

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

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

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

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

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

Вы можете спросить: "Почему бы просто не использовать SeleniumTestCase?" Что ж, похоже, что поддержка других для браузеров требуется веб-драйвер, поэтому, если вы хотите выйти из 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.

 31
Author: Ben, 2017-05-23 12:17:42

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

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

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

 4
Author: scipilot, 2013-10-04 04:54:13

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

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

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

  • Управляющий, который интегрирует php-webdriver непосредственно в PHPUnit, чтобы вы могли управлять селеном непосредственно из своих тестов
  • Прием кода платформа тестирования, которая обеспечивает BDD-слой поверх php-webdriver и PHPUnit
 3
Author: Ondrej Machulda, 2017-04-17 23:36:18