Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

выбор Ruby обертки под Webdriver

framework
page-object
ruby
Теги: #<Tag:0x00007f7b6502dec8> #<Tag:0x00007f7b6502dd88> #<Tag:0x00007f7b6502dc48>

(brbrr) #1

Занялся поиском адекватной оберки для веб автомейшена под руби.
есть три варианта:

  1. чистый page object
  2. capybara
  3. микс из 1. и 2. site_prism

Интересны мнения людей которые пользовали что либо из представленного.
Мне импонирует 3й пункт, но немного отталкивает не самая лучшая поддерживаемость
Приветствуются любые мысли и мнения!

вот пример стартера для капибары


(Yuri Karpovich) #2

Я выбрал первый вариант.
Хорошо поддерживается. Cheezy и Justin Ko активно отвечают на вопросы на Stack Overflow. К тому же, по использованию page object gem есть замечательная книжка https://leanpub.com/cucumber_and_cheese (недавно, кстати, вышло обновленное издание).


(brbrr) #3

как вы справляетесь со всевозможными ожиданиями и аяксами?
может у вас есть какие то примеры использования этого гема?


(Yuri Karpovich) #4

как-то так https://github.com/cheezy/page-object/wiki/Ajax-Calls


(Mykhailo Poliarush) #5

Еще стоит глянуть на эти ссылочки


(Eugene Tkachenko) #6

Юзал Watir+PageObject+FigNewton(хранение тестовых данных)+data magic gem(авто-генерация тестовых данных)
П.С. все эти тулзы задизайнены Чизи.


(brbrr) #7

Понял что page-object довольно самодостаточный.
интересны так же мнения людей которые работали с capybara & site-prism


(ffess) #8

Ну так, Евгений, юзал - понятно, а где же фидбек-то?


(Eugene Tkachenko) #9

Watir - понравился своим набором кастомных солюшенов для не тревиальных случаев(драг н дроп решается в одну строчку), часто обновляется, связь можно держать с Чизи через стековерфлоу, также не маловажно, как-то выглядит он лаконичней и т.д.
По пейдж обджекту - фидбек думаю незачем оставлять.
По капибаре можно сказать однозначно - сильная тулза, но не настолько “гибкая” и тяжеловата для maintenance в последующей работе с ней.
П.С. Мое ИМХО.


(brbrr) #10

Фидбек по пейдж-обжект гему мне довольно интересен.

Я все еще не могу выбрать между page-object и site_prism
Первый мне представляется простым, и довольно понятным, но немного отталкивает такое буйство типов элементов, и нелаконичность методов предикатов:
button :login ... --> login, login_element, login?
expect{home_page}.to be_login

во втором это реализованно красивее:
element :login_button ... --> login_button, has_login_button?, ...
expect{home_page}.to have_login_button

Но при этом, второй отпугивает масивностью, не понятным поведением капибары.


(Eugene Tkachenko) #11

Ну тут скорее всего будет выбор между Watir и Capybara, если Watir - однозначно page-object, Capybara - site_prism.
Именно по page-object, нет ничего того, что меня могло бы “уговорить” на данный момент перейти на site_prism, но я наверное все таки оглядываюсь на выбор между Watir и Capybara делая свой выбор.


(brbrr) #12

Спасибо! Посмотрел на Watir - понял откуда все эти врапперы у page-objecta взялись. стало яснее.


#13

На тек. проекте используем capybara and factory_girl (test data).
Capybara хорошо хендлит сессии, добавляет сахара, декларирует умные ожидания. Но в проекте при этом есть методы try_n_times, самописные waitors. C другими сетапами для руби не могу сравнить, но по сравнению с java+thucydides скорость написания выше и код получается субъективно лучше.