Ответ 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
(я могу ошибаться).
Вот некоторые полезные ссылки, которые я нашел, когда я отскочил от этого:
-
Параметры командной строки сервера 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
class (!) 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.