0

我在模态对话框中有一些输入字段,就像这样(那是玉):

      .modal-body
            .control-group
                label.required(for="event-planner-email")= Email
                .input
                    input#event-planner-email(name="email", type='text')

            .control-group
                label.required(for="event-planner-name")= Name
                .input
                    input#event-planner-name(name="name", type='text')

我希望能够在测试中填写它们。我尝试按下打开模式的链接并使用zombie.js浏览器对象填充字段,coffee中的代码如下:

          browser.clickLink 'a#open-planner', () ->
                browser
                    .fill('event-planner-email', someEmail)
                    .fill('event-planner-name', someName)
                    .pressButton 'Create', () ->
                         do done

但我收到一条错误消息:“没有匹配‘事件策划者电子邮件’的输入”。如果有人知道如何做到这一点,将不胜感激。谢谢!

4

3 回答 3

0

Maybe the modal has not come into view yet by the time your call back is firing. If there is a transition happening to show the modal, you'll have to wait for that transition to complete.

Maybe try adding a setTimeout in your call back of the clickLink:

browser.clickLink 'a#open-planner', ->
    fillForm = ->
        browser
            .fill('event-planner-email', someEmail)
            .fill('event-planner-name', someName)
            .pressButton 'Create', ->
                 do done

    setTimeout fillForm, 1000
于 2012-09-21T17:29:48.970 回答
0

来自Bootstrap 文档

您需要在模态加载后运行您的僵尸代码,因此您应该使用“显示”事件

$('#myModal').on('shown', function () {
  // zombie
})

我不知道如何在咖啡中表达这一点

于 2012-09-21T17:34:19.303 回答
0

谢谢大家,原来我只是没有为输入元素使用正确的css选择器,所以而不是

                .fill('event-planner-email', someEmail)

应该

                .fill('input#event-planner-email', someEmail)

因为在上面的翡翠片段中,'event-planner-email' 是输入元素的 id。想删除我的问题,以免我进一步暴露我的愚蠢,但显然为时已晚。

于 2012-09-21T17:53:55.490 回答