Как предотвратить обновление страницы при использовании схемы сценария огурца?

Я использую Serenity (Thucydides) + Cucumber для тестирования веб-приложения в браузере Chrome. Я хочу проверить, существуют ли на странице какие-либо элементы.

Scenario Outline: Should see six tabs on the page
    When I am on MainPage page
    Then I should see the following <tab> as tab:
    Examples:
      | tab         |
      | Tab_1       |
      | Tab_2       |
      | Tab_3       |
      | Tab_4       |

Я успешно проверяю первую вкладку, но не могу проверить другие вкладки, поскольку страница перезагружается после первой итерации. Как оставаться на той же странице? Насколько это управляемо в моем случае?


person Alex    schedule 19.05.2015    source источник
comment
Если вы не хотите покидать страницу, рассматривали ли вы таблицу вместо схемы?   -  person Jarod Adair    schedule 21.05.2015
comment
Я думаю, вам нужно будет использовать сценарий и таблицу вместо схемы сценария.   -  person Jeff Price    schedule 22.05.2015


Ответы (2)


Схема сценария создает отдельный сценарий для каждого элемента примера. Вам нужен единый сценарий, который ищет ваши вкладки.

Лучшим способом написать это было бы назвать вкладки, например foo-tabs, а затем напишите

Scenario: See foo tabs on main page
  When I am on the main page
  Then I should see foo tabs

И в вашем определении шага запрограммируйте, чтобы искать вкладки, например.

Then "should see foo tabs" do
  foo_tabs.each do |tab|
    expect(page).to have # do something with the tab here
  end
end

(выше - это рубиновый код, но вы сможете адаптироваться к java)

Теперь у вас будет один сценарий, а также, если вы добавите / удалите вкладку, вам не придется менять свою функцию.

person diabolist    schedule 19.05.2015
comment
Да, я знаю, как проверять отдельные элементы, я хочу, чтобы мой код в файле функций и отчет о тестировании выглядели более читабельными, поэтому я использую табличные данные в схемах сценария. Мой вопрос был и заключается в том, как предотвратить перезагрузку страницы. - person Alex; 20.05.2015
comment
Я вижу, что после каждого шага открывается страница, настроенная с помощью @DefaultUrl. Значит, я должен как-то с этим справиться? - person Alex; 20.05.2015
comment
Я показал вам, как сделать вашу функцию более читаемой. Вы не можете обойтись без того, как работают схемы сценариев, они создают отдельный сценарий для каждой вещи в группе примеров. Если вы продолжите использовать схему, вы не решите свою проблему. - person diabolist; 20.05.2015
comment
Я ценю ваши комментарии. Но схемы сценария сейчас работают для меня довольно хорошо. - person Alex; 21.05.2015
comment
@Alex Я знаю, что это старое, но как ты это решил? - person juliangonzalez; 09.11.2018

Я неправильно использовал прибор Before. Я решил проблему, настроив Global Hook BeforeAll.

person Alex    schedule 20.05.2015