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ブラウザーオブジェクトを使用してフィールドに入力してみました。コーヒーのコードは次のとおりです。

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

しかし、「'event-planner-email'に一致するINPUTがありません」というエラーが表示されます。誰かがこれを行う方法を知っているなら、助けていただければ幸いです。ありがとう!

4

3 に答える 3

0

皆さん、ありがとうございました。入力要素に適切なcssセレクターを使用しなかったため、代わりに

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

する必要があります

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

上記のjadeスニペットでは、「event-planner-email」が入力要素のIDであるためです。私の愚かさをこれ以上明らかにしないように、私の質問を削除したかったのですが、どうやら手遅れです。

于 2012-09-21T17:53:55.490 に答える
0

コールバックが発生するまでに、モーダルがまだ表示されていない可能性があります。モーダルを表示するために遷移が発生している場合は、その遷移が完了するまで待つ必要があります。

setTimeoutのコールバックにa を追加してみてください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

ブートストラップのドキュメントから

モーダルがロードされた後にゾンビコードを実行する必要があるため、「表示された」イベントを使用する必要があります

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

コーヒーでそれを表現する方法がわかりません

于 2012-09-21T17:34:19.303 に答える