模拟在 Rspec Capybara 中按下 Tab 键?

Posted

技术标签:

【中文标题】模拟在 Rspec Capybara 中按下 Tab 键?【英文标题】:Simulate pressing Tab key in Rspec Capybara? 【发布时间】:2021-12-26 05:23:30 【问题描述】:

我正在尝试编写用于在对话框模式中管理焦点的测试。如何在Rspec Capybara中模拟按下键盘Tab键?

【问题讨论】:

这取决于您使用的驱动程序。例如,在 Rack::Test(默认驱动程序)上,无法模拟按键,因为它实际上不是真正的浏览器。 【参考方案1】:

使用send_keys方法,例如:

body = find('body')
body.send_keys(:tab)
body.send_keys([:shift, :tab])

在all the capybara docs pages 和send_keys 中,Capybara::Node::Element class 写得最好。

【讨论】:

注意:对于最近的 Capybara,您也可以在会话中直接调用 send_keys,它应该被发送到当前活动元素 page.send_keys(:tab) 而不必先找到主体

以上是关于模拟在 Rspec Capybara 中按下 Tab 键?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 rspec 中使用 capybara 点击下拉选项

如何使用rails cucumber,rspec,capybara在视图(dhtml)中测试动态部分?

在 RSpec 请求规范中使用 Capybara 时设置自定义请求标头的最佳方法是啥?

使用 RSpec + capybara-webkit 检查 JS 框是不是存在

资产预编译后,RSpec / Capybara测试不会通过

Rspec/Capybara 正在加载,循环要求被认为是有害的