我希望使用Capybara Webkit在警告对话框中测试文本。我知道accept_js_confirms
和reject_js_confirms
方法,但我希望在执行操作之前评估对话框的内容。例如,在Selenium中,以下工作:
alert = page.driver.browser.switch_to.alert
expect(alert.text).to eq t('report_periods.edit.delete_confirmation')
alert.accept
我目前正在使用expect(page.driver.confirm_messages).to include t('report_periods.edit.delete_confirmation')
来测试同一个对话框的文本,但是,在更新我们的capybara-webkit gem后,我们的测试会输出一个弃用警告:[DEPRECATION] Capybara::Webkit::Driver#confirm_messages is deprecated. Please use Capybara::Session#accept_confirm or Capybara::Session#dismiss_confirm instead.
使用其中任何一种方法警告不会测试对话框的内容。
答案 0 :(得分:3)
accept_confirm和dismiss_confirm只接受或解除模态。
如果你想比较文本,你可以在变量中获取accept_confirm的返回值,然后你可以比较它。
message = accept_prompt(with: 'Linus Torvalds') do
click_link('Show Prompt About Linux')
end
expect(message).to eq('Who is the chief architect of Linux?')