2017-11-16 13 views
0

私はcypress.ioを使用してストライプチェックアウトフォームをテストしようとしていますサイプレスを使用してiFrameのフォーム入力にデータを入力するにはどうすればよいですか?

誰かがこれを動作させることができた場合は、教えてください。

cy.get('iframe.stripe_checkout_app') 
     .wait(10000) 
     .then($iframe => { 
     const iframe = $iframe.contents() 
     const myInput0 = iframe.find('input:eq(0)') 
     const myInput1 = iframe.find('input:eq(1)') 
     const myInput2 = iframe.find('input:eq(2)') 
     const myButton = iframe.find('button') 

     cy 
      .wrap(myInput0) 
      .invoke('val', 4000056655665556) 
      .trigger('change') 
     cy 
      .wrap(myInput1) 
      .invoke('val', 112019) 
      .trigger('change') 

     cy 
      .wrap(myInput2) 
      .invoke('val', 424) 
      .trigger('change') 

     cy.wrap(myButton).click({ force: true }) 
     }) 

しかし、問題は、ストライプ状がまだ入力値を登録していないということです。私は私が思いついたhttps://github.com/cypress-io/cypress/issues/136ここで問題にスレッドを発見し、これに基づいて。ここには何が起こるの少しgifはhttp://www.giphy.com/gifs/xT0xeEZ8CmCTVMwOU8です。基本的には、フォームは変更入力トリガーを登録しません。

サイプレスを使用してiframe内のフォームにデータを入力する方法を知っている人はいますか?

答えて

0

iframeのワークフローはまだまだかなりかっこです(this featureが実装されるまで)。今のところ、すべてのDOMインタラクションを強制的に試すことができます:

cy.visit("https://jsfiddle.net/1w9jpnxo/1/"); 
cy.get("iframe").then($iframe => { 

    const $doc = $iframe.contents(); 
    cy.wrap($doc.find("#input")).type("test", { force: true }); 
    cy.wrap($doc.find("#submit")).click({ force: true }); 
}); 
+0

ありがとうございます。残念ながらそれはうまくいかないようです。私はこれを試して、それはまだ同じです。今回は赤いボックスはカード番号入力の周りだけですが、まだフォームを送信できません。誰かがこれが反応ストライプチェックアウトに特有のものかどうかを知っている場合は、ここで私がタイプを強制すると起こることのすばらしいGIFですhttp://www.giphy.com/gifs/l2QEaH7zmQooawT6g –

関連する問題