селен капибары и JavaScript Уничтожают

Я использую направляющие 2.3.5, и это - то, что я сделал. У меня есть последний огурец, огуречные направляющие и установленная капибара.

rails demo
cd demo
ruby script/generate cucumber --rspec --capybara
ruby script/generate feature post title:string body:text published:boolean
ruby script/generate scaffold post title:string body:text published:boolean
rake db:migrate
rake cucumber

Все тесты являются передающими. Теперь я хочу протестировать использование JavaScript.

В это время это - то, как сценарий похож

  Scenario: Delete post
    Given the following posts:
      |title|body|published|
      |title 1|body 1|false|
      |title 2|body 2|true|
      |title 3|body 3|false|
      |title 4|body 4|true|
    When I delete the 3rd post
    Then I should see the following posts:
      |Title|Body|Published|
      |title 1|body 1|false|
      |title 2|body 2|true|
      |title 4|body 4|true|

Я добавил @javascript наверху.

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

Что делает я должен сделать так, чтобы хорошо был нажат автоматически, и тест продолжается вперед.

5
задан Nick Vanderbilt 13 May 2010 в 16:06
поделиться

1 ответ

Что ж, это своего рода взлом, но я думаю, что сейчас это единственный способ:

When /^I confirm a js popup on the next step$/ do
  page.evaluate_script("window.alert = function(msg) { return true; }")
  page.evaluate_script("window.confirm = function(msg) { return true; }")
end

Вы должны поместить этот шаг прямо перед тем, который вызывает всплывающее окно подтверждения (перейдите по ссылке). Он изменит стандартное предупреждение и подтвердит поведение, чтобы всегда возвращать истину. Таким образом, вам не нужно самостоятельно нажимать кнопку «ОК».

8
ответ дан 13 December 2019 в 22:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: