У меня есть разочарование, пытаясь найти любую информацию о Selenium 2 для PHPUnit, за исключением исходного кода и тестов, которые я могу «просмотреть», чтобы «понять это». Кажется, что каждый любимый
https://github.com/sebastianbergmann/phpunit-selenium/blob/master/Tests/Selenium2TestCaseTest.php
… но, конечно, мне не нужно копать сотни строк источника, чтобы получить ответы на простые вопросы? Где я могу найти руководство для новичков, базовую документацию или что-нибудь еще?
Ах-ха момент достиг. Будет пост для следующей бедной души, блуждающей в этих пустынных областях смятения.
Когда 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 или C #. Вот почему все так волнуются по поводу тестового примера PHPUnit, потому что это позволяет легко угадать, что вы ищете, после того как вы нашли метод, который вы хотите в документах webdriver.
В противном случае, по-видимому, большинство других функций PHPUnit относятся к оригинальному материалу SeleniumTestCase
; Я собрал несколько ссылок ниже, чтобы централизовать мою информацию несколько. Селен 1 не «мертв», но он старый. PHPUnit по-прежнему использует много архитектуры от реализации Selenium 1, а Selenium 2 PHPUnit на самом деле не такой, но вроде Selenium 1 ++.
Таким образом, нет причин идти на охоту через источник, просто попробуйте сопоставить тестовые примеры PHPUnit с документами WebDriver. Кроме того, несколько методов в учебнике для SeleniumTestCase
изменили имена в Selenium2TestCase
, но не бойтесь, все по-прежнему работает одинаково, просто немного запутано.
Вы можете спросить: «Почему бы просто не использовать SeleniumTestCase
?» Ну, похоже, что для поддержки других браузеров требуется WebDriver, поэтому, если вы хотите выйти из Firefox, вам понадобится Selenium2TestCase
(я могу ошибаться).
Вот некоторые полезные ссылки, которые я нашел, когда я отскочил от этого:
Параметры командной строки сервера Selenium, 16-06-2013, неполные, отсутствующие вещи, такие как -singleWindow
: http://eswarg.blogspot.com/2013/06/selenium-server-commandline-options.html
Еще несколько вариантов командной строки, 4 года: http://www.grails.org/Selenium+RC+Configuration
Справка командной строки сервера Selenium, самая полная документация, которую я нашел до сих пор: java -jar selenium-server.jar -h
Chrome webdriver из командной строки: Как получить хром, работающий с селеном, используя php webdriver?
IE webdriver из командной строки: запуск InternetExplorerDriver в тестах PHPUnit
PHPUnit конфигурация XML для нескольких браузеров в Selenium http://phpunit.de/manual/3.7/en/appendixes.configuration.html#appendixes.configuration.selenium-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.
Чтобы использовать Selenium с PHPUnit, вы можете использовать другие инструменты на основе библиотеки php-webdriver :