SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
Watir & WebDriver
       @p0deje
Алексей Родионов

         Фриланс
         @p0deje
   p0deje@gmail.com
https://github.com/p0deje
        watir-team
Системы автоматизации браузера




-------------------------------------------------------------
   2002      2004      2006      2008      2010       2012
Системы автоматизации браузера



          Watir




-------------------------------------------------------------
   2002           2004   2006    2008      2010       2012
Watir
+ Удобное объектно-ориентированное API
    + Управление через Windows OLE

                - Только IE
           - Только Windows
              - Только Ruby
Watir
browser.goto('http://www.google.com')
browser.text_field(:name, 'q').value = 'Watir'
browser.button(:name, 'btnG').click
Системы автоматизации браузера



          Watir

             Selenium




-------------------------------------------------------------
   2002           2004   2006    2008      2010       2012
Selenium
         + Ядро использует JavaScript
             + Кросс-браузерность
          + Кросс-платформенность
+ Поддержка разных языков (Java, Ruby, PHP, etc.)

      - Ограничение JavaScript песочницей
                - Нестабильность
       - Процедурное и перегруженное API
Selenium
browser.open('http://www.google.com')
browser.type('name=q', 'Selenium')
browser.click('name=btnG', :wait_for => :page)
Selenium
browser.keyPress
browser.type
browser.typeKeys
Системы автоматизации браузера



          Watir

             Selenium

                         WebDriver




-------------------------------------------------------------
   2002           2004     2006      2008   2010      2012
WebDriver
 + Эмуляция действий пользователя (native events)
        + Объектно-ориентированное API
              + Кросс-браузерность
           + Кросс-платформенность
+ Поддержка разных языков (Java, Ruby, Python, C#)
WebDriver API

WebDriver SPI

    JSON

  Браузер
NativeDriver
Системы автоматизации браузера



          Watir

             Selenium

                         WebDriver

                                            Selenium-WebDriver


-------------------------------------------------------------
   2002           2004     2006      2008      2010     2012
Selenium-WebDriver
browser.navigate.to('http://www.google.com')
browser.find_element(:name, 'q').send_keys('Selenium')
browser.find_element(:name, 'btnG').click
Selenium-WebDriver API
- Есть ли элемент на странице (NoSuchElementError)
    - Видим ли элемент (ElementNotVisibleError)
   - Строки CSS/XPath локаторов (find_element)
Watir API
                  Ленивая инициализация
browser.div(id: 'present').present?
browser.div(id: 'visible').visible?
browser.div(id: 'ajax').when_present.text
Watir API
             Имя метода определяет HTML тэг
browser.span
browser.text_field
browser.table
Watir API
                 Множественные локаторы
browser.span(class: 'span_class', text: 'Span text')
Watir API
                    Кастомные атрибуты
browser.text_field(data_val_required: 'Value)
Watir API
                Сохранение DOM иерархии
browser.div(id: 'parent').span(class: 'span').text
Watir API
                    Коллекции элементов
browser.table(id: 'parent').trs.each do |tr|
    tr.text
end
Watir API
             Регулярные выражения в локаторах
browser.div(class: /class-[0-9]+/)
Selenium-WebDriver + Watir
           ???
WebIDL
              https://github.com/jarib/webidl


Библиотека-парсер Interface Description Language
            и генератор Ruby кода

 Обеспечивает поддержку спецификаций W3C
                (e.g. HTML5)
WatirSpec
         https://github.com/watir/watirspec


Набор тестов, описывающих и проверяющих
          реализацию Watir API
Watir-WebDriver

the most elegant way to use webdriver with ruby
Watir 2

    - Прекращение разработки FireWatir
- Обновление API в соответствии с WatirSpec
Watir 3

Еще большее соответствие WatirSpec
НО
Watir 3 ≠ Watir-WebDriver
Watir-WebDriver

          - Cookies API
            - Alert API
        - Screenshot API
                 ...
https://github.com/watir/watir-webdriver
Watir

Прекращена работа на собственным драйвером IE
Watir 4 = Watir-WebDriver
?
@p0deje
p0deje@gmail.com

Credits to @jarib (http://seleniumcamp.com/materials/internals/)

Contenu connexe

Tendances

Александр Шуменко - Varnish for authenticated users
Александр Шуменко - Varnish for authenticated usersАлександр Шуменко - Varnish for authenticated users
Александр Шуменко - Varnish for authenticated users
LEDC 2016
 
Selenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностейSelenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностей
Paul Stashevsky
 
"Гибридное приложение: полгода после релиза" Легчилин Андрей, Парадеев Роман,...
"Гибридное приложение: полгода после релиза" Легчилин Андрей, Парадеев Роман,..."Гибридное приложение: полгода после релиза" Легчилин Андрей, Парадеев Роман,...
"Гибридное приложение: полгода после релиза" Легчилин Андрей, Парадеев Роман,...
it-people
 

Tendances (6)

Александр Шуменко - Varnish for authenticated users
Александр Шуменко - Varnish for authenticated usersАлександр Шуменко - Varnish for authenticated users
Александр Шуменко - Varnish for authenticated users
 
Davit mkrtchyan rich wicket presentation
Davit mkrtchyan rich wicket presentationDavit mkrtchyan rich wicket presentation
Davit mkrtchyan rich wicket presentation
 
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
 
Selenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностейSelenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностей
 
"Гибридное приложение: полгода после релиза" Легчилин Андрей, Парадеев Роман,...
"Гибридное приложение: полгода после релиза" Легчилин Андрей, Парадеев Роман,..."Гибридное приложение: полгода после релиза" Легчилин Андрей, Парадеев Роман,...
"Гибридное приложение: полгода после релиза" Легчилин Андрей, Парадеев Роман,...
 
Изоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесьИзоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесь
 

Similaire à Watir&web driver

CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлениюCodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
CodeFest
 
Современные платформы (фреймворки) разработки веб- приложений на PHP
Современные платформы (фреймворки) разработки веб- приложений на PHP Современные платформы (фреймворки) разработки веб- приложений на PHP
Современные платформы (фреймворки) разработки веб- приложений на PHP
Magecom Ukraine
 
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Andrey Rebrov
 
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
solit
 
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
Andrey Akulov
 

Similaire à Watir&web driver (20)

CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлениюCodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
 
WebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double funWebdriverIO + Puppeteer. Double gun – double fun
WebdriverIO + Puppeteer. Double gun – double fun
 
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для Caché
 
Каким будет Selenium 3.0 и Selenium 4.0
Каким будет Selenium 3.0 и Selenium 4.0Каким будет Selenium 3.0 и Selenium 4.0
Каким будет Selenium 3.0 и Selenium 4.0
 
Web and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukWeb and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard Lebedyuk
 
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
 
(Seleniumcamp) Selenium RC for QA Engineer
(Seleniumcamp) Selenium RC for QA Engineer(Seleniumcamp) Selenium RC for QA Engineer
(Seleniumcamp) Selenium RC for QA Engineer
 
Как и зачем мы тестируем UI
Как и зачем мы тестируем UIКак и зачем мы тестируем UI
Как и зачем мы тестируем UI
 
Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...
 
Современные платформы (фреймворки) разработки веб- приложений на PHP
Современные платформы (фреймворки) разработки веб- приложений на PHP Современные платформы (фреймворки) разработки веб- приложений на PHP
Современные платформы (фреймворки) разработки веб- приложений на PHP
 
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
 
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
 
Андрей Стахиевич - Измеряем производительность веб приложения на стороне клие...
Андрей Стахиевич - Измеряем производительность веб приложения на стороне клие...Андрей Стахиевич - Измеряем производительность веб приложения на стороне клие...
Андрей Стахиевич - Измеряем производительность веб приложения на стороне клие...
 
Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...
Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...
Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...
 
ASP.NET MVC: new era?
ASP.NET MVC: new era?ASP.NET MVC: new era?
ASP.NET MVC: new era?
 
Презентация JQuery от Future Colors
Презентация JQuery от Future ColorsПрезентация JQuery от Future Colors
Презентация JQuery от Future Colors
 
Презентация jQuery
Презентация jQueryПрезентация jQuery
Презентация jQuery
 
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
Повышение эффективности Java приложений (новые возможности Web Logic 12c, кон...
 
Архитектура и технологии Pryaniky.com
Архитектура и технологии Pryaniky.comАрхитектура и технологии Pryaniky.com
Архитектура и технологии Pryaniky.com
 
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
 

Plus de qasib

Gostev 2
Gostev 2Gostev 2
Gostev 2
qasib
 
Кутумов - Автоматизация тестирования транспортных карт
Кутумов - Автоматизация тестирования транспортных картКутумов - Автоматизация тестирования транспортных карт
Кутумов - Автоматизация тестирования транспортных карт
qasib
 
Белов наиболее часто уязвимые места в веб приложениях
Белов наиболее часто уязвимые места в веб приложенияхБелов наиболее часто уязвимые места в веб приложениях
Белов наиболее часто уязвимые места в веб приложениях
qasib
 
Высоцкий Неортодоксальный дизайн тестов
Высоцкий Неортодоксальный дизайн тестовВысоцкий Неортодоксальный дизайн тестов
Высоцкий Неортодоксальный дизайн тестов
qasib
 
5 колчинская
5 колчинская 5 колчинская
5 колчинская
qasib
 
3 zalomlenkov selenium
3 zalomlenkov   selenium3 zalomlenkov   selenium
3 zalomlenkov selenium
qasib
 
2 kurnosova presentation
2 kurnosova presentation2 kurnosova presentation
2 kurnosova presentation
qasib
 
6 кареев киров
6 кареев киров6 кареев киров
6 кареев киров
qasib
 
4 kazakov clouds-intesting
4 kazakov clouds-intesting4 kazakov clouds-intesting
4 kazakov clouds-intesting
qasib
 
1 щербина
1 щербина1 щербина
1 щербина
qasib
 
Oсобенности тестирования игр
Oсобенности тестирования игрOсобенности тестирования игр
Oсобенности тестирования игр
qasib
 
Я бы в тестеры пошел. Татьяна Богданова
Я бы в тестеры пошел. Татьяна БогдановаЯ бы в тестеры пошел. Татьяна Богданова
Я бы в тестеры пошел. Татьяна Богданова
qasib
 
Управление рисками в тестировании. Сергей Олейников
Управление рисками в тестировании. Сергей ОлейниковУправление рисками в тестировании. Сергей Олейников
Управление рисками в тестировании. Сергей Олейников
qasib
 
Роль тестировщика в Lean. Светлана Федянина
Роль тестировщика в Lean. Светлана ФедянинаРоль тестировщика в Lean. Светлана Федянина
Роль тестировщика в Lean. Светлана Федянина
qasib
 
Тест-менеджмент в Jira. Анна Добрынина
Тест-менеджмент в Jira. Анна ДобрынинаТест-менеджмент в Jira. Анна Добрынина
Тест-менеджмент в Jira. Анна Добрынина
qasib
 
Сергей Высоцкий - Automated Software Testing- Сказки и реальность
Сергей Высоцкий - Automated Software Testing- Сказки и реальностьСергей Высоцкий - Automated Software Testing- Сказки и реальность
Сергей Высоцкий - Automated Software Testing- Сказки и реальность
qasib
 
Дмитрий Пиликов - Юзабилити тестирование
Дмитрий Пиликов - Юзабилити тестированиеДмитрий Пиликов - Юзабилити тестирование
Дмитрий Пиликов - Юзабилити тестирование
qasib
 

Plus de qasib (18)

Блуждание во тьме. Или как понять состояние продукта
Блуждание во тьме. Или как понять состояние продуктаБлуждание во тьме. Или как понять состояние продукта
Блуждание во тьме. Или как понять состояние продукта
 
Gostev 2
Gostev 2Gostev 2
Gostev 2
 
Кутумов - Автоматизация тестирования транспортных карт
Кутумов - Автоматизация тестирования транспортных картКутумов - Автоматизация тестирования транспортных карт
Кутумов - Автоматизация тестирования транспортных карт
 
Белов наиболее часто уязвимые места в веб приложениях
Белов наиболее часто уязвимые места в веб приложенияхБелов наиболее часто уязвимые места в веб приложениях
Белов наиболее часто уязвимые места в веб приложениях
 
Высоцкий Неортодоксальный дизайн тестов
Высоцкий Неортодоксальный дизайн тестовВысоцкий Неортодоксальный дизайн тестов
Высоцкий Неортодоксальный дизайн тестов
 
5 колчинская
5 колчинская 5 колчинская
5 колчинская
 
3 zalomlenkov selenium
3 zalomlenkov   selenium3 zalomlenkov   selenium
3 zalomlenkov selenium
 
2 kurnosova presentation
2 kurnosova presentation2 kurnosova presentation
2 kurnosova presentation
 
6 кареев киров
6 кареев киров6 кареев киров
6 кареев киров
 
4 kazakov clouds-intesting
4 kazakov clouds-intesting4 kazakov clouds-intesting
4 kazakov clouds-intesting
 
1 щербина
1 щербина1 щербина
1 щербина
 
Oсобенности тестирования игр
Oсобенности тестирования игрOсобенности тестирования игр
Oсобенности тестирования игр
 
Я бы в тестеры пошел. Татьяна Богданова
Я бы в тестеры пошел. Татьяна БогдановаЯ бы в тестеры пошел. Татьяна Богданова
Я бы в тестеры пошел. Татьяна Богданова
 
Управление рисками в тестировании. Сергей Олейников
Управление рисками в тестировании. Сергей ОлейниковУправление рисками в тестировании. Сергей Олейников
Управление рисками в тестировании. Сергей Олейников
 
Роль тестировщика в Lean. Светлана Федянина
Роль тестировщика в Lean. Светлана ФедянинаРоль тестировщика в Lean. Светлана Федянина
Роль тестировщика в Lean. Светлана Федянина
 
Тест-менеджмент в Jira. Анна Добрынина
Тест-менеджмент в Jira. Анна ДобрынинаТест-менеджмент в Jira. Анна Добрынина
Тест-менеджмент в Jira. Анна Добрынина
 
Сергей Высоцкий - Automated Software Testing- Сказки и реальность
Сергей Высоцкий - Automated Software Testing- Сказки и реальностьСергей Высоцкий - Automated Software Testing- Сказки и реальность
Сергей Высоцкий - Automated Software Testing- Сказки и реальность
 
Дмитрий Пиликов - Юзабилити тестирование
Дмитрий Пиликов - Юзабилити тестированиеДмитрий Пиликов - Юзабилити тестирование
Дмитрий Пиликов - Юзабилити тестирование
 

Watir&web driver