Для автоматизации использую Ruby + Cucumber + Capybara + SitePrism
В чем проблема: в 90% случаев в приложении после клика по ссылке или кнопке осуществляется редирект на другую страницу.
Сейчас после клика в кейсе, я делаю проверку ту ли страницу видит юзер.
пример кода который есть сейчас:
# .feature file
Given user click "button_name"
Then user see "page name" page
# реализация степов
When(/^user click "([^"]*)"$/) do |element|
@current_page.send(element).click
end
Then(/^user see "([^"]*)" page$/) do |page|
page_for(page) # page_for - хелпер, который производит загрузку объекта страницы
expect(current_url).to be_include @current_page.url
end
- Думаю, в каждом кейсе писать шаг загрузки страницы не правильно, но так же мне не очень нравится идея реализовать отдельно клик по каждой кнопке.
- Столкнулся с проблемой, которая заключается в том, что есть “вложенные” страницы, т.е. это куски страниц, которые дублируются на нескольких страницах(приложение большое, таких виджетов несколько десятков на сотнях страниц).
Пока частично решил проблему отлавливанием исключений, но считаю это костылем.
пример:
When(/^user click"([^"]*)"$/) do |element|
begin
@current_page.send(element).click
rescue
@current_page.sidebar.send(element).click
rescue
@current_page.some_widget.send(element).click
rescue
@current_page.some_widget2.send(element).click
rescue
raise 'Элемент не найден'
end
end
Посоветуйте пожалуйста возможные решения этих проблем.