繁体   English   中英

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

[英]Simulating a keypress using capybara-webkit in rails

我正在使用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)的输入

然后发送一个“ input#search”

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

然后我将abc发送到“ input#search”

如果您觉得比较舒服,可以将其用引号引起来

然后将“ abc”发送到“ input#search”

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

然后将arrow_left发送到“ input#search”

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

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

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

或者,也许您只想按Enter

然后将Enter发送到“ input#search”

在文本区域中测试计数器会有多酷(比如说Twitter应用)

然后向“ #message”发送问候,然后在“ characters_left”中看到“ 135”,并向“ #message”发送退格,并且在“ characters_left”中看到“ 136”

我们用它来测试完成建议

突出显示第一个建议的名称,并按Enter键

然后将“ bo”发送到“ input#username”,并且应该在“ username_suggestions”中看到“ bob”,然后将enter发送到“ input#username”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM