twitter bootstrap模式的黄瓜功能

Nie*_*els 2 javascript testing ruby-on-rails cucumber twitter-bootstrap

我正在写一个黄瓜功能,我想删除一个类别,但在删除它之前,我会显示一个模态屏幕,询问用户的构造.

我正在使用twitter bootstrap并使用他们提供的javscript模式.

但是我被卡住了,所以任何人都可以直接帮助我如何测试这个.到目前为止这是我的功能:

  Scenario: Delete category with articles
   Given I am logged in as an admin
   And I have category titled Paints
   When I go to the list of categories
   And I push delete button for the Paints category
   Then I should get a popup to confirm
Run Code Online (Sandbox Code Playgroud)

我已经实现了必要的步骤,该功能当然接受了最后一个.但我不知道如何开始:

我读了一些关于page.driver.browser.switch_to.alert的内容,但如果可以的话,现在不要.

有人有什么建议吗?

非常感谢.

Nob*_*ita 7

正如您在问题中所建议的那样,您可以使用Selenium驱动程序访问该对话框.我假设你正在使用Capybara,所以这里是你如何定义接受/取消弹出窗口的步骤定义:

Then /^I accept the popup to confirm$/
  page.driver.browser.switch_to.alert.accept 
end

Then /^I cancel the popup to confirm$/
 page.driver.browser.switch_to.alert.dismiss
end
Run Code Online (Sandbox Code Playgroud)

编辑:似乎模态实际上不是一个窗口...让我们这样尝试:

创建一个辅助函数来检测模态元素是否在:

def find_modal_element
  wait_until { page.find(modal_element_id).visible? }
end
Run Code Online (Sandbox Code Playgroud)

然后让我们改变步骤定义:

Then /^I should see a popup window$/
 find_modal_element
 page.find(modal_element_id).text.must_match "Whatever you want it to match"
end
Run Code Online (Sandbox Code Playgroud)