2017-12-12 24 views
0

私はサイプレステストをWebサイトに書き込むよう書いています。ユーザー名とパスワードのフィールドと[送信]ボタンがあります。ほとんどのログインは簡単ですが、最初に警告ダイアログが表示されることがあります。サイプレスを使用して存在しない可能性のある要素をチェックする方法

私はこの試みた:その後、私は警告がdoesnのため失敗し、これを試してみました

CypressError: Timed out retrying: Expected to find element: '.warning', but never found it. 

cy.get('#login-username').type('username'); 
    cy.get('#login-password').type(`password{enter}`); 

    // Check for a possible warning dialog and dismiss it 
    if (cy.get('.warning')) { 
     cy.get('#warn-dialog-submit').click(); 
    } 

警告が表示されない場合は、テストが失敗したことを除いて、正常に動作しているがすばやく表示されますので、サイプレスの$は何も見つかりません:

cy.get('#login-username').type('username'); 
    cy.get('#login-password').type(`password{enter}`); 

    // Check for a possible warning dialog and dismiss it 
    if (Cypress.$('.warning').length > 0) { 
     cy.get('#warn-dialog-submit').click(); 
    } 

正しい確認方法はありますか要素の存在?要素が見つからない場合、私はcy.getのようなものを必要とします。

答えて

0

DOM要素の条件付きテストやCypressのさまざまな回避策を試すことには、さまざまな短所があります。このすべてについては、Conditional Testingのサイプレスのドキュメントで詳しく説明しています。

あなたがしようとしていることを実行する方法は複数あるため、ドキュメント全体を読んで、アプリケーションとテストニーズに最適なものを決定することをお勧めします。

+0

ありがとうございました。私は間違って問題に近づいていると感じました。 body要素(存在する必要があります)を '取得'し、その下に警告ダイアログがあるかどうかをテストします。正常に動作します。 –

関連する問題