Изучение WebDriver + Ruby.

Добрый вечер всем.

Вот уже около месяца в свободное время изучаю Вебдрайвер с Джавой.

На днях руководство анонсировало новый проект, который будет разрабатываться на Руби. Хотелка руководства, чтобы тесты писались тоже на Руби. Проблема в том, что ничего путёвого по связке Вебдрайвера с Руби не удалось нагуглить в то время в то время, как на Джаве два замечательных туториала и купленный на юдеми акционный курс индуса, к акценту которого уже практически привык.

Если кто-нибудь может подсказать что-то годное почитать/посмотреть, буду очень признателен. Спасибо за внимание.

https://seleniumguidebook.com/

1 лайк

Спасибо, Михаил. Цены там, конечно, по нынешнему курсу слегка кусаются. Кто-нибудь пользовался?

Нет, не проходил, ничего сказать. А цены то обычные, просто ситуация другая. Но как говориться самый лучший вклад - это вклад в свое развитие!

1 лайк

Абсолютно с Вами согласен. Но всё же пока подожду, возможно, появятся отзывы по сабжу от форумчан или альтернативные варианты. Сумма, конечно, посильная, но хотелось бы быть уверенным, что продукт стоящий.

Конечно не знаю, что это за книга, но не уверен, что там реально столько полезной информации. Судя по фото - она толстенная, откуда столько про селениум они написали? наверняка воды больше, чем нужно информации, хотя конечно утверждать не берусь.

По поводу вопроса:
Первое,что нашел : вот
По идее - вам нужно лишь разобраться, как работать с ruby api. С точки зрения общего selenium api - оно везде одинаковое. Поведение селениума - тоже.

То есть если вы хотите в целом по селениуму что-то изучить - это уже немного другой вопрос.

1 лайк

не наступайте на грабли, не используйте напрямую RubyBindings. Обычно такие инициативы заканчиваются написанием “своего идеального говнофреймворка”. Юзайте готовые решения, например Capybara gem

И изучите основы Ruby и какого-нить тестового фреймворка для организации тестов: TestUnit, RSpec, и т.д

По всему этому есть куча бесплатных книг / туториалов / статей онлайн. Гугл в помощь!

2 лайка

Кстати, полезные ссылки по ruby автоматизации можно найти здесь

я тоже за capybara - очень упрощает жизнь

1 лайк

а я против Capybara - Хорошая идея, конечно, и очень не плохая реализация, но все мы боремся за то чтобы сложить всю техническую реализацию в методы классов страниц. А в Capybara все самое красивое - это техническая реализация (методы для поиска и работы с элементами, они очень красиво читаются), зачем ее юзать, если эти методы читать никто не будет (в смысле в коде тестов их быть не должно)?

Рекомендую начать с основ руби

https://www.youtube.com/user/RubyScreencastsRu/videos?sort=da&view=0&flow=grid

Продолжить изучением

  • Cucumber (не очень рекомендую использовать, именно изучить и понять),
  • RSpec (рекомендую использовать),
  • потом поискать реализации Page Object, стоящих не так уж много
    остановиться рекомендую на page-object gem :smile:

канал автора ExtremelyCheezy - YouTube
там есть 3-4 видео с подробными инструкциями, как использовать
так же он написал очень не плохую книгу, на простом языке (английском :smile:)
гугление должно помочь ее скачать, если не жалко 15 долларов - купи, я купил когда то, не пожалел
Будут еще вопросы - пиши

1 лайк

Спасибо всем за ответы.

@ffess, как раз с руби и начал. Прошёл курсик базовый на codecademy, эти скринкасты на ютубе уже половину посмотрел. Пока что немного пугает такая гибкость языка. Ну, и понимания чёткого нет, что необходимо знать для автоматизации. Интуитивно догадываюсь, что ООПшные все фишки понимать надо, ну и все типы данных, методы, циклы и т.д. За ссылку и книгу спасибо, с английским, думаю, проблем не будет.

Никто вам не мешает использовать Page classes с Capybara. Используем Capybara и классы для страниц на 2-х проектах:

  1. 700 cucumber features.
  2. 200 RSpec examples.

Большое преимущество библиотек Capybara для Ruby и Selenide для Java - это возможность не париться с написанием explicit wait-ов тут и там после каждого действия. Кто писал автотесты для Single-page вэб-приложений где все взаимодействие с сервером идет за счет AJAX меня поймут.
А все “удобные” методы для взаимодействия с элементами, типа click_link, check, select, etc - фигня. Единственная причина использования Capybara на проекте - это встроенный механизм синхронизации методов find / has_selector? / has_no_selector?, который и избавляет код от кучи явных ожиданий, делая его чище и делает тесты стабильнее.

3 лайка

Это очень здорово, что там синхронизация сейчас настолько круто работает. Я раньше перестал юзать Capybara как раз после того как они перешли на новый способ реализации этих принципов, когда отменили метод wait_until. Так вот новая реализация была нестабильна еще (у меня всё валилось), а старыми методами пользоваться было уже нельзя, поэтому пошел искать альтернативы.
А в моем случае кстати явные ожидания тоже практически не используются. Есть хук метод, который при каждой загрузке страницы, или каком либо действии просто ожидает пока все ajax-запросы не закроются

Буду рад ответить на любые вопросы о связке Selenium Webdriver Ruby RSpec.
Можно здесь, можно в почту sblohin@yandex.ru или Skype: s.blohin

1 лайк