在轨道上使用水豚网络工具包模拟按键

Simulating a keypress using capybara-webkit in rails

本文关键字:工具包 网络工具 模拟 网络 轨道      更新时间:2023-09-26

我正在使用capybara webkit测试一个表单,其中使用jquery tokeninput填充字段(https://github.com/loopj/jquery-tokeninput)。问题是使用fill_in无法处理此问题。是否有自动测试的方法?提前谢谢。

我也一直在使用令牌输入,它所做的是隐藏您的实际输入字段,并用id匹配token-input-{your_field_id}的另一个元素替换它。假设您有一个id为search的字段,那么实际上应该以id为token-input-search的元素为目标。

因此,一个示例代码片段是:

fill_in "token-input-search", with: "hello"

然后你可以测试你的行为。

从capybara webkit代码的发布说明中,他们有1.0.0版本的条目:

* Set text fields using native key events.

因此,在文本字段上设置文本似乎会导致本机事件触发。

和你一样,我也需要这个来工作,并发现这起到了作用:

find('input#query').set 'some text'

我的javascript获取了它正在侦听的keyup事件,并以它应该的方式进行了激发。

https://github.com/markgandolfo/send-keys

将"a"字符发送到id为search的输入(#search)

我发送一个到"输入#搜索"

将"a"、"b"answers"c"字符发送到id为search的输入(#search)

我把abc发送到"输入#搜索"

如果你觉得更舒服,你可以把它们放在引号里

我将"abc"发送到"输入#搜索"

也可以向元素发送修改器/特殊关键点笔划

我将箭头_左发送到"输入#搜索"

您甚至可以发送修饰符和字符的组合

这将导致字符"a"被发送到输入

我把[shift,a]发送到"输入#搜索"

或者你只想按回车键

我将输入发送到"输入#搜索"

在文本区测试计数器会有多酷(比如推特应用程序)

我向"#message"发送问候我应该在"characters_left"中看到"135"我将退格键发送到"#消息"我应该在"characters_left"中看到"136"

我们用它来测试完成建议

第一个建议的名称被突出显示,并对回车键做出响应

我将"bo"发送到"输入#用户名"我应该在"用户名_建议"中看到"bob"我将输入发送到"input#username"