Watir&web driver

596 views
524 views

Published on

Алексей Родионов, QaSib Омск, июнь 2012

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
596
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Watir&web driver

  1. 1. Watir & WebDriver @p0deje
  2. 2. Алексей Родионов Фриланс @p0deje p0deje@gmail.comhttps://github.com/p0deje watir-team
  3. 3. Системы автоматизации браузера------------------------------------------------------------- 2002 2004 2006 2008 2010 2012
  4. 4. Системы автоматизации браузера Watir------------------------------------------------------------- 2002 2004 2006 2008 2010 2012
  5. 5. Watir+ Удобное объектно-ориентированное API + Управление через Windows OLE - Только IE - Только Windows - Только Ruby
  6. 6. Watirbrowser.goto(http://www.google.com)browser.text_field(:name, q).value = Watirbrowser.button(:name, btnG).click
  7. 7. Системы автоматизации браузера Watir Selenium------------------------------------------------------------- 2002 2004 2006 2008 2010 2012
  8. 8. Selenium + Ядро использует JavaScript + Кросс-браузерность + Кросс-платформенность+ Поддержка разных языков (Java, Ruby, PHP, etc.) - Ограничение JavaScript песочницей - Нестабильность - Процедурное и перегруженное API
  9. 9. Seleniumbrowser.open(http://www.google.com)browser.type(name=q, Selenium)browser.click(name=btnG, :wait_for => :page)
  10. 10. Seleniumbrowser.keyPressbrowser.typebrowser.typeKeys
  11. 11. Системы автоматизации браузера Watir Selenium WebDriver------------------------------------------------------------- 2002 2004 2006 2008 2010 2012
  12. 12. WebDriver + Эмуляция действий пользователя (native events) + Объектно-ориентированное API + Кросс-браузерность + Кросс-платформенность+ Поддержка разных языков (Java, Ruby, Python, C#)
  13. 13. WebDriver APIWebDriver SPI JSON Браузер
  14. 14. NativeDriver
  15. 15. Системы автоматизации браузера Watir Selenium WebDriver Selenium-WebDriver------------------------------------------------------------- 2002 2004 2006 2008 2010 2012
  16. 16. Selenium-WebDriverbrowser.navigate.to(http://www.google.com)browser.find_element(:name, q).send_keys(Selenium)browser.find_element(:name, btnG).click
  17. 17. Selenium-WebDriver API- Есть ли элемент на странице (NoSuchElementError) - Видим ли элемент (ElementNotVisibleError) - Строки CSS/XPath локаторов (find_element)
  18. 18. Watir API Ленивая инициализацияbrowser.div(id: present).present?browser.div(id: visible).visible?browser.div(id: ajax).when_present.text
  19. 19. Watir API Имя метода определяет HTML тэгbrowser.spanbrowser.text_fieldbrowser.table
  20. 20. Watir API Множественные локаторыbrowser.span(class: span_class, text: Span text)
  21. 21. Watir API Кастомные атрибутыbrowser.text_field(data_val_required: Value)
  22. 22. Watir API Сохранение DOM иерархииbrowser.div(id: parent).span(class: span).text
  23. 23. Watir API Коллекции элементовbrowser.table(id: parent).trs.each do |tr| tr.textend
  24. 24. Watir API Регулярные выражения в локаторахbrowser.div(class: /class-[0-9]+/)
  25. 25. Selenium-WebDriver + Watir ???
  26. 26. WebIDL https://github.com/jarib/webidlБиблиотека-парсер Interface Description Language и генератор Ruby кода Обеспечивает поддержку спецификаций W3C (e.g. HTML5)
  27. 27. WatirSpec https://github.com/watir/watirspecНабор тестов, описывающих и проверяющих реализацию Watir API
  28. 28. Watir-WebDriverthe most elegant way to use webdriver with ruby
  29. 29. Watir 2 - Прекращение разработки FireWatir- Обновление API в соответствии с WatirSpec
  30. 30. Watir 3Еще большее соответствие WatirSpec
  31. 31. НОWatir 3 ≠ Watir-WebDriver
  32. 32. Watir-WebDriver - Cookies API - Alert API - Screenshot API ...https://github.com/watir/watir-webdriver
  33. 33. WatirПрекращена работа на собственным драйвером IE
  34. 34. Watir 4 = Watir-WebDriver
  35. 35. ?@p0dejep0deje@gmail.comCredits to @jarib (http://seleniumcamp.com/materials/internals/)

×