在rails中使用capybara-webkit模拟按​​键

时间:2012-03-01 16:39:09

标签: javascript jquery ruby-on-rails jquery-tokeninput capybara-webkit

我正在使用capybara-webkit来测试使用jquery-tokeninput(https://github.com/loopj/jquery-tokeninput)填充字段的表单。问题是使用fill_in不适用于此。反正有自动测试吗?提前致谢。

3 个答案:

答案 0 :(得分:0)

我一直在使用令牌输入,它的作用是隐藏你的实际输入字段,并用另一个id匹配token-input-{your_field_id}的元素替换它。因此,假设您有一个标识为search的字段,您实际上应该使用标识token-input-search来定位该元素。

因此,示例代码段将是:

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

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

答案 1 :(得分:0)

从capybara-webkit代码的发行说明中,他们从1.0.0版本中获得了这个条目:

* Set text fields using native key events.

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

和你一样,我也需要这个工作,并发现这就是诀窍:

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

我的javascript选择了它正在侦听的keyup事件,然后解雇它。

答案 2 :(得分:-3)

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

将'a'字符发送到id为search(#search)

的输入

我发送了一个“输入#search”

将'a','b'和'c'字符发送到id为search(#search)

的输入

我发送abc到“输入#search”

如果感觉更舒服,可以将它们放在引号中

我将'abc'发送到“input#search”

您还可以将修饰符/特殊键击发送到元素

我发送arrow_left到“输入#search”

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

这将导致字符“A”被发送到输入

我将[shift,a]发送到“input#search”

或许您只想按Enter键

我发送回“输入#search”

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

我向“#message”发送你好 我应该在“characters_left”中看到“135” 我将退格发送到“#message” 我应该在“characters_left”中看到“136”

我们用它来测试完成建议

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

我发送“bo”到“input#username” 我应该在“username_suggestions”中看到“bob” 然后我将回车输入“input#username”