現在、eコマース Web サイトのテストを自動化しています。e2e 注文テスト フローを設計しています。支払い詳細ページで、ビザ支払いオプションが選択されています。Cypress はカード番号をなんとか type() しました (問題ありませんでした) )しかし、カードの有効期限に到達すると、フィールドの日付がMM/YYになります。通常、MM である最初の数字を入力すると、このスラッシュ (/) が自動的に追加されます。この inout フィールドに適したロケーターをたくさん見つけましたが、Cypress がこれを入力しようとすると、テストが失敗し、有効期限が inout になります。フィールドには、日付が無効であることが示されています。ここに、私のコードの一部が示されています(企業向けの内容なので、あまり共有できません)
/// cy.get(‘[class=“braintree-credit-card-container”]’).find(‘#braintree-hosted-field-expirationDate’).click({force: true}).type(’ 5’,‘2025’)///
誰かがこれについて私を助けてくれませんか。これに対する回避策が見つかりません。ありがとう!!
Cypress テストでは、
最も簡単な方法は、cypress-iframe パッケージを使用することです。
yarn add 'cypress-iframe'
cypress/support/e2e.js でインポートしてパッケージをアクティブ化します。
import 'cypress-iframe`
テストでは、cy.get() の代わりに cy.iframe() を使用します。
cy.iframe('#braintree-hosted-field-expirationDate')
.find('input')
.type('0525')
cy.iframe('#braintree-hosted-field-expirationDate')
.find('input')
.invoke('val')
.should('eq', '05 / 25')