SlideShare a Scribd company logo
Selenium: начало работыСташевский Павел, 2010Pavel.Stashevskiy@softline.ru
План мероприятияПопытаемся установитьНемного про архитектуруКлиенты для RCЛокаторы – гуляем по DOM-деревуТиповые действияОжидания
УстановкаСтавим РНР (или Denwer?)Устанавливаем PEAR http://pear.php.net/manual/en/installation.getting.phpТеперь PHPUnithttp://www.phpunit.de/manual/3.0/en/installation.htmlСкачиваем Selenium RChttp://seleniumhq.org/download/Запускаем SeleniumRCjava –jar selenium-server.jarГотово, запускаем тесты!
Немного о том, как все устроено
Клиенты для RCTesting_SeleniumПростой клиент на PHP для Selenium RCНужно использовать TestCaseи TestSuitот PHPUnitЗато большая гибкостьPHPUnit_seleniumГотовый «продукт-расширение» для PHP и SeleniumTestCaseи Selenium в одном лице
ЛокаторыЛокатор - это строка, уникально идентифицирующая UI-элемент.Виды:id=<element_id>name=<element_name>dom=<dom_object>link=<link_text>xpath=<xpath_locator>css=<css_path>
ID<input type=text id='some_input_id' name='some_input_name' value='' />Самый быстрый по нахождениюСамый «уникальный» из локаторовЛокатор: id=some_input_id
Name<input type=text id='some_input_id' name='some_input_name' value='' />Быстрый по скоростиХорошая уникальность, но меньше чем у idИспользуется, как правило, для полей формыname=some_input_name
Link<a href='http://some_url'>Йассылко</a>Используется для ссылокЕсли ссылки не уникальны, то кликнет по первойLink=ЙассылкоМожно использовать Link=Йассылко*
DOMdom=document.forms['myForm'].myDropdowndom=document.images[56]Использует DOM-деревоМедленный и неудобный
XPathxpath=//table[@id='table1']//tr[4]/td[2]xpath=//input[@name='name2' and @value='yes']xpath=//*[text()="right"]Универсальный для любых объектовМедленный, особенно если длинный, и особенно если IEИзбегайте полных путейИщетсявсе первое //table/tbody/tr/td/a
CSScss=form[name=second_form]Основан на описании таблиц стилейУчитывает иерархиюБыстрее чем Xpath, поэтому используйте CSS 
Выбираем тип локатораИспользуем указание типа локатора (id=, name=, link=, xpath=, css= )Если тип не задан:Если локатор начинается с '//', то используется XPath. Если нет какого-либо префикса, то элемент ищется по ID Если элемент с заданным ID отсутствует, то элемент ищется по атрибуту name.
Средства для поискаFireBugXpath Checkerhttps://addons.mozilla.org/en-US/firefox/addon/1095/Selenium IDE
Selenium APIУправление сессией (Util)Действия (Action)Проверки (Getы, Isы)Ожидания (Wait)
Управление сессиейstart() – запускаем сессиюstop() – останавливаем сессиюsetTimeout() – таймаут для ожидания ответа от браузераsetSpeed() – скорость, с которой RC посылает команды браузеру
Action. Страницаopen( $url ) – открывает $url в текущем окнеgoBack( ) – вернуться назад (по истории в браузере)refresh( ) – обновить страницу в текущем окнеclose( ) – кликнуть «Закрыть» на всплывающих в popup-окнахopenWindow( string $url, string $windowID) – открыть всплывающее окно, потом выбрать с помощью selectWindow( string $windowID)
Action. Компонентыtype( string $locator, string $value) – устанавливает $value в любой input fieldclick( string $locator) – кликает на link, button, checkbox илиradio buttonclickAt( string $locator, string $coordString) - кликает на link, button, checkbox или radio button, учитывает позицию (’10,20’)submit( string $formLocator) – отправить форму
Action. Компонентыcheck( string $locator) – установить checkbox, отличается от click!!!uncheck( string $locator) – убрать выделение checkboxselect( string $selectLocator, string $optionLocator) – выбрать значение в спискеremoveSelection( string $locator, string $optionLocator) – удалить выбранное значениеremoveAllSelections( string $locator) – удалить все значения (для множеств. списков)
Action. Другие фишкиrunScript( string $script) – выполнить скрипт на страницеdoubleClick( string $locator) – двойной клик по всему, чему можноdoubleClickAt( string $locator) – двойной клик по всему чему нужно с координатами
Ожидания (Wait)waitForCondition( string $script, string $timeout)waitForPageToLoad( string $timeout)waitForPopUp( string $windowID, string $timeout)waitForFrameToLoad( string $frameAddress, string $timeout)
Получаем информацию со страницыisChecked( string $locator)isEditable( string $locator)isElementPresent( string $locator)isOrdered( string $locator1, string $locator2)
Получаем информацию со страницыarray getAllButtons( )array getAllFields( )array getAllLinks( )getBodyText( )getText( string $locator)getTitle( )getValue( string $locator) – возращает значение атрибута value
Презенташка!!!<?phprequire_once 'PHPUnit/Extensions/SeleniumTestCase.php';class Example extends PHPUnit_Extensions_SeleniumTestCase{  protected function setUp()  {    $this->setBrowser("*googlechrome");    $this->setBrowserUrl("http://allsoft.ru/");}  public function testMyTestCase()  {    $this->open("/");    $this->type("q", "kaspersky");    $this->submit("name=search");    $this->waitForPageToLoad("30000");$this->assertTrue($this->isTextPresent("Kaspersky Internet Security"));  }}?>
ВопросыPavel.Stashevskiy@softline.ruSkype: pavel.stashevsky_sl

More Related Content

PPTX
Selenium: приемы работы
PPTX
XPath локаторы в Selenium WebDriver
PPTX
Selenium vs AJAX
PPT
Alexander manuhin selenium_php_v2.0
PDF
Автоматизация UI тестирования под Windows и Windows Phone
PPT
Подробная презентация JavaScript 6 в 1
PPTX
Selenium, а давай подождем?
PPT
Модульное тестирование iOS-приложений.
Selenium: приемы работы
XPath локаторы в Selenium WebDriver
Selenium vs AJAX
Alexander manuhin selenium_php_v2.0
Автоматизация UI тестирования под Windows и Windows Phone
Подробная презентация JavaScript 6 в 1
Selenium, а давай подождем?
Модульное тестирование iOS-приложений.

What's hot (20)

PPTX
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
PPTX
Как не утонуть в мегабайтах JS-кода
PPT
Easy authcache 2 кеширование для pro родионов игорь
PDF
Angular 2: Всех переиграл
PDF
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
PDF
Автоматизация функционального тестирования REST API
PPT
Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования си...
PDF
QA Fest 2019. Андрей Солнцев. Selenide для профи
PPT
Web весна 2013 лекция 9
PDF
Контроль качества верстки или как начать делать Makeup
PPTX
Web осень 2013 лекция 8
PDF
Component Inspector
PPTX
Типичные ошибки начинающих писать тесты на WebDriver
PPTX
Selenide puzzlers @ devclub.eu
PDF
Продвинутое использование Celery — Александр Кошелев
PPTX
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
PDF
Web осень 2013 лекция 2
PDF
Пользователь точно оценит! Повышение производительности мобильных приложений ...
PDF
Регрессионное тестирование верстки
PPTX
Человекопонятные отчёты
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
Как не утонуть в мегабайтах JS-кода
Easy authcache 2 кеширование для pro родионов игорь
Angular 2: Всех переиграл
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
Автоматизация функционального тестирования REST API
Надежда Серкова -- Автоматическая генерация Perl скриптов для тестирования си...
QA Fest 2019. Андрей Солнцев. Selenide для профи
Web весна 2013 лекция 9
Контроль качества верстки или как начать делать Makeup
Web осень 2013 лекция 8
Component Inspector
Типичные ошибки начинающих писать тесты на WebDriver
Selenide puzzlers @ devclub.eu
Продвинутое использование Celery — Александр Кошелев
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
Web осень 2013 лекция 2
Пользователь точно оценит! Повышение производительности мобильных приложений ...
Регрессионное тестирование верстки
Человекопонятные отчёты
Ad

Viewers also liked (13)

PPTX
Автоматизация и Selenium IDE
PDF
Git and GitHub for Testers
PPTX
автоматизация тестирования с помощью Selenium
PDF
Основы Git
PPTX
Docker + Selenium Webdriver в рамках Continuous Integration
PPTX
Git для тестировщиков
PPT
(Seleniumcamp) Selenium IDE как артефакт пикника на обочине
PDF
Easy selenium test automation on python
PPT
Selenium
PPTX
Webium: Page Objects in Python
PPTX
Selenium Tutorial For Beginners | What Is Selenium? | Selenium Automation Tes...
PPT
Функциональные возможности ИКС
PPT
ИКС - комплексное решение сетевой безопасности
Автоматизация и Selenium IDE
Git and GitHub for Testers
автоматизация тестирования с помощью Selenium
Основы Git
Docker + Selenium Webdriver в рамках Continuous Integration
Git для тестировщиков
(Seleniumcamp) Selenium IDE как артефакт пикника на обочине
Easy selenium test automation on python
Selenium
Webium: Page Objects in Python
Selenium Tutorial For Beginners | What Is Selenium? | Selenium Automation Tes...
Функциональные возможности ИКС
ИКС - комплексное решение сетевой безопасности
Ad

Similar to Selenium: начало работы (20)

PPTX
Codeception Introduction
KEY
Путеводитель в мире Selenium
PDF
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
PPTX
Codeception UATestingDays
PDF
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
PPTX
Meeting #4. Frameworks.
PPTX
Selen framework
PDF
Плюсы и минусы автоматизации, пример из жизни
PPTX
автоматизация тестирования с помощью Selenium
PPT
бегун
PPTX
Automation Functional Testing in Agile Projects
KEY
Testing RIA with Selenium
PPT
бегун
PDF
Михаил Трошев "AJAX в поиске по вебу"
PDF
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
PPT
Selenium 2.0: обзор новых возможностей
PDF
Виталий Каторгин, Wamba
PDF
Testing with Selenium
PDF
2014 Jeeconf - Geb Spock
Codeception Introduction
Путеводитель в мире Selenium
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
Codeception UATestingDays
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
Meeting #4. Frameworks.
Selen framework
Плюсы и минусы автоматизации, пример из жизни
автоматизация тестирования с помощью Selenium
бегун
Automation Functional Testing in Agile Projects
Testing RIA with Selenium
бегун
Михаил Трошев "AJAX в поиске по вебу"
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Selenium 2.0: обзор новых возможностей
Виталий Каторгин, Wamba
Testing with Selenium
2014 Jeeconf - Geb Spock

Selenium: начало работы