如何验证ruby capybara中pop消息的内容

时间:2016-03-11 16:33:59

标签: ruby-on-rails cucumber capybara

我想验证弹出消息的内容"只有整数"提交表格后。以下是提交表单的代码:

fill_in 'allocationRegContrib[12].newFundValue', :with => workbook.cell(2,3)
find(:xpath, '//*[@id="allocationChangeDetails"]').click
sleep 5
expect(page).to have_content("Only Whole numbers")

第4行是我要在弹出窗口中查看内容的地方。我收到错误"意外警报打开"

然后我尝试以另一种方式在我接受弹出窗口的位置添加第4行。以下是代码:

Then (/^I accept popup for fractional part$/) do
expect(page).to have_content("Only Whole numbers")
page.driver.browser.switch_to.alert.accept 
end

这里我也得到了同样的错误。请建议

1 个答案:

答案 0 :(得分:1)

要使用水豚以交叉驱动方式执行此操作,您需要稍微更改步骤,因为触发警报的步骤需要知道它即将到来

When (/^I do something and accept popup for fractional part$/) do
  accept_alert "Only Whole numbers" do
    # the do something code that triggers the alert box
  end
end

如果你在多个地方使用接受弹出窗口,你可以按照

的方式做一些事情。
When (/^(.+) and accept popup for fractional part$/) do |step_name|
  accept_alert "Only Whole numbers" do
    step(step_name)
  end
end

或更一般地

When (/^(.+) and accept "([^"]+)"$/) do |step_name, alert_text|
  accept_alert alert_text do
    step(step_name)
  end
end