gpt4 book ai didi

ruby - 在 Capybara Webkit 测试中将 Ctrl-S 发送到浏览器

转载 作者:太空宇宙 更新时间:2023-11-03 16:51:58 24 4
gpt4 key购买 nike

我的应用程序中有 JavaScript,它会在用户按下 Ctrl-S 或 Cmd-S 时提交表单。我想使用 RSpec、Capybara 和 Capybara Webkit 为此编写一个自动化测试。我不认为我可以让 Capybara 执行 JavaScript 来触发 Ctrl-S/Cmd-S,因为出于安全考虑,Chrome 中的 JavaScript 通常不允许这样做。我看到 Selenium有可用的 page.driver.browser.action.key_down/key_up 方法。 Capybara Webkit 有类似的东西吗?如果没有,我如何在测试中将 Ctrl-S 和 Cmd-S 发送到浏览器?

编辑:我也无法将常规的 Selenium 驱动程序与 Firefox 一起使用:

describe 'edit a template and hit Ctrl-S', js: true do
render_views

it 'saves the template' do
visit my_path
page.execute_script("$('#hidden_textarea').val('Fabulous new content')")
builder = page.driver.browser.action
builder.key_down(:control).send_keys('s').key_up(:control).perform
expect(page).to have_text('Record was saved.')
expect(page).to have_text('Fabulous new content')
end
end

看起来 builder.key_down(:control).send_keys('s').key_up(:control).perform 没有做任何事情——页面在 Firefox 中加载,但只是坐在那里。这是在带有 selenium-webdriver 2.35.1 的 OS X 上的 Firefox 19。

关于如何使用 Selenium 或 Capybara Webkit 在 Firefox 或 Chrome 中使用它有什么建议吗?

最佳答案

我正在尝试使用 Capybara 和 SitePrism 在 Chrome 中做类似的事情。这实际上适用于我在 Firefox 中:

page.element.native.send_keys :command, 'a'

所以我建议试试这个

builder.native.send_keys :control, 's'

关于ruby - 在 Capybara Webkit 测试中将 Ctrl-S 发送到浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19299915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com