Где, черт возьми, есть документация по Selenium 2 для PHPUnit?
Я испытываю разочарование, пытаясь найти любую информацию о Selenium 2 для PHPUnit, за исключением исходного кода и тестов, которые я могу "просмотреть", чтобы "разобраться". Всеобщий фаворит, кажется,
Https://github.com/sebastianbergmann/phpunit-selenium/blob/master/Tests/Selenium2TestCaseTest.php
...но, конечно, мне не нужно копаться в сотнях строк источника, чтобы получить ответы на простые вопросы? Где я могу найти руководство для начинающих, основная документация или что-нибудь еще?
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
(я могу ошибаться).
Вот несколько полезных ссылок, которые я нашел, когда соскребал это:
Параметры командной строки Selenium server, 16-06-2013, неполные, отсутствуют такие вещи, как
-singleWindow
: http://eswarg.blogspot.com/2013/06/selenium-server-commandline-options.htmlЕще несколько параметров командной строки, 4 года: http://www.grails.org/Selenium +RC+Конфигурация
Справка командной строки Selenium server, самая полная документация, которую я нашел до сих пор:
java -jar selenium-server.jar -h
Веб-драйвер Chrome из командной строки: Как заставить chrome работать с selenium, используя веб-драйвер php?
IE webdriver из командной строки: Как запустить InternetExplorerDriver в тестах PHPUnit
XML конфигурации PHPUnit для нескольких браузеры в Selenium http://phpunit.de/manual/3.7/en/appendixes.configuration.html#appendixes.configuration .селен-rc
Документация для
Selenium2TestCase
класса (!) http://apigen.juzna.cz/doc/sebastianbergmann/phpunit-selenium/class-PHPUnit_Extensions_Selenium2TestCase.htmlИ, конечно же, загадочные документы PHPUnit Selenium: http://phpunit.de/manual/3.7/en/selenium.html
Чтобы решить мою вопрос с несколькими браузерами выше, по-прежнему можно использовать статический шаблон $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.
Я только что прошел через тот же процесс и написал эту статью в качестве ссылки для себя и других:
Http://scipilot.org/blog/2013/06/30/re-learning-unit-testing-selenium-2-phpunit-selenium/
Похоже, что вы уже ответили на большинство моих открытий, но, по крайней мере, вы будете чувствовать себя менее одиноким в своем разочаровании!
Расширение PHPUnit Selenium (содержащее Selenium2TestCase
и т.д.) Больше не является частью самого проекта PHPUnit - теперь это автономное расширение , которое также необходимо явно установить (т. Е. это не является частью дистрибутива PHPUnit). Однако, похоже, нет никакой документации даже для отдельного расширения.
Кроме того, это расширение больше не активно разрабатывается и частично не соответствует последним изменениям в протоколе WebDriver.
Для использования Селен с PHPUnit, однако, вы можете использовать другие инструменты, основанные на php-webdriver библиотека:
- Управляющий, который интегрирует php-webdriver непосредственно в PHPUnit, чтобы вы могли управлять селеном непосредственно из своих тестов
- Прием кода платформа тестирования, которая обеспечивает BDD-слой поверх php-webdriver и PHPUnit