【问题标题】:Test Alert Dialog Text Using Capybara Webkit 1.3.1使用 Capybara Webkit 1.3.1 测试警报对话框文本
【发布时间】:2014-12-09 16:35:18
【问题描述】:

我希望使用 Capybara Webkit 测试警报对话框中的文本。我知道accept_js_confirmsreject_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. 使用警告中的任何一种方法都不会测试不过对话框的内容。

【问题讨论】:

    标签: ruby-on-rails rspec capybara capybara-webkit


    【解决方案1】:

    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?')
    

    在这里查看模态:https://github.com/jnicklas/capybara

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多