在 capybara-webkit 中替代 find_field('doc-name').native.send_keys(:tab)

Posted

技术标签:

【中文标题】在 capybara-webkit 中替代 find_field(\'doc-name\').native.send_keys(:tab)【英文标题】:alternative to find_field('doc-name').native.send_keys(:tab) in capybara-webkit在 capybara-webkit 中替代 find_field('doc-name').native.send_keys(:tab) 【发布时间】:2013-01-22 07:33:19 【问题描述】:

capybara 中的 :selenium 驱动程序允许我编写:

find_field('doc-name').native.send_keys(:tab)

是否有与 :webkit 驱动程序等效的构造?

我试图从一个字段中移开标签,这会导致一些 AJAX 验证发生,然后继续我的测试文件中的下一步。 capybara-webkit 出现以下错误:

undefined methodsend_keys' for "20":String`

我正在使用:

jruby (1.6.7)
capybara (1.1.2)
capybara-webkit (0.13.0)
cucumber (1.1.0)
cucumber-rails2 (0.3.5)
factory_girl (1.2.4)
gherkin (2.5.4)
rails (2.3.8)
rake (0.8.7)
rspec (1.3.2)
rspec-rails (1.3.4)
trinidad (1.3.5)

【问题讨论】:

Is there a way to send key presses to Webkit using Capybara? 的可能重复项 【参考方案1】:

Capybara 现在支持send_keys,如下所示:

element = page.find("#my_element")
element.send_keys(:space)

不过,唯一受支持的按键是 Space、Enter 和 Backspace。

我也觉得它非常不可靠(每隔一段时间就会失败)。

来源: https://github.com/thoughtbot/capybara-webkit/blob/master/lib/capybara/webkit/node.rb#L50-L65

【讨论】:

以上是关于在 capybara-webkit 中替代 find_field('doc-name').native.send_keys(:tab)的主要内容,如果未能解决你的问题,请参考以下文章

在 capybara-webkit 中禁用声音

如何使用 capybara-webkit 获取响应头和时间

Capybara-Webkit:缺少 js/React 并且找不到变量:WeakMap

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

$.ajax 删除请求未在 capybara-webkit 中发送数据参数

ABAP AFAB折旧过账替代(源代码增强)