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

20,167 views

Published on

2 Comments
7 Likes
Statistics
Notes
  • Возможно ли с помощью Selenium IDE подрабатывать тестером?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Щикааарно! Жаль, что не наткнулся на эту презентацию, когда только начинал изучать Selenium.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
20,167
On SlideShare
0
From Embeds
0
Number of Embeds
2,311
Actions
Shares
0
Downloads
148
Comments
2
Likes
7
Embeds 0
No embeds

No notes for slide

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

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

×