【发布时间】:2012-03-01 16:39:08
【问题描述】:
我正在使用 capybara-webkit 测试使用 jquery-tokeninput (https://github.com/loopj/jquery-tokeninput) 填充字段的表单。问题是使用 fill_in 不适用于此。反正有没有自动测试这个?提前致谢。
【问题讨论】:
标签: javascript jquery ruby-on-rails jquery-tokeninput capybara-webkit
我正在使用 capybara-webkit 测试使用 jquery-tokeninput (https://github.com/loopj/jquery-tokeninput) 填充字段的表单。问题是使用 fill_in 不适用于此。反正有没有自动测试这个?提前致谢。
【问题讨论】:
标签: javascript jquery ruby-on-rails jquery-tokeninput capybara-webkit
我也一直在使用令牌输入,它的作用是隐藏您的实际输入字段,并将其替换为 ID 匹配 token-input-{your_field_id} 的另一个元素。因此,假设您有一个 id 为 search 的字段,您实际上应该定位 id 为 token-input-search 的元素。
所以示例代码 sn-p 将是:
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
然后我发送一个到“input#search”
我将 abc 发送到“input#search”
然后我将“abc”发送到“input#search”
我将 arrow_left 发送到“input#search”
然后我将 [shift, a] 发送到“input#search”
然后我将输入发送到“input#search”
我向“#message”打招呼 我应该在“characters_left”中看到“135” 我将退格键发送到“#message” 我应该在“characters_left”中看到“136”
然后我将“bo”发送到“input#username” 我应该在“username_suggestions”中看到“bob” 我将输入发送到“input#username”
【讨论】: