【问题标题】:Simulating a keypress using capybara-webkit in rails在 rails 中使用 capybara-webkit 模拟按键
【发布时间】: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


    【解决方案1】:

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

    所以示例代码 sn-p 将是:

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

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

    【讨论】:

      【解决方案2】:

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

      * Set text fields using native key events.
      

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

      像你一样,我也需要这个来工作,并发现这可以解决问题:

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

      我的 javascript 拾取了它正在侦听的 keyup 事件并以应有的方式触发。

      【讨论】:

        【解决方案3】:

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

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

        然后我发送一个到“input#search”

        将“a”、“b”和“c”字符发送到 id 是搜索的输入 (#search)

        我将 abc 发送到“input#search”

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

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

        您还可以向元素发送修饰符/特殊按键

        我将 arrow_left 发送到“input#search”

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

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

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

        或者你只是想按回车键

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

        在文本区域(比如 twitter 应用)测试计数器会很酷

        我向“#message”打招呼 我应该在“characters_left”中看到“135” 我将退格键发送到“#message” 我应该在“characters_left”中看到“136”

        我们用它来测试完成建议

        第一个建议的名称被突出显示并响应输入键

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

        【讨论】:

        • 可能值得注意的是,这只适用于 selenium webdriver,而不是 capybara-webkit
        猜你喜欢
        • 2021-12-26
        • 2013-04-12
        • 1970-01-01
        • 1970-01-01
        • 2012-01-18
        • 2023-03-05
        • 2012-12-10
        • 1970-01-01
        • 2014-02-10
        相关资源
        最近更新 更多