2017-12-12 2 views
0

나는 Cypress 테스트를 작성하여 웹 사이트에 로그인합니다. 사용자 이름과 암호 필드와 제출 버튼이 있습니다. 대부분의 로그인은 간단하지만 가끔은 경고 대화 상자가 나타나야합니다. Cypress를 사용하여 존재하지 않을 수있는 요소를 확인하는 방법

나는이 시도 : 경고가 표시되지 않으면 테스트가 실패하는 것을 제외하고 잘 작동

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(); 
    } 

:

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

내가 실패하는이 시도 경고 아무튼 때문에 Cypress. $는 아무 것도 찾을 수 없을 정도로 빨리 나타납니다.

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의 Cypress 설명서에서 자세히 설명합니다.

수행하려는 작업을 수행하는 데 여러 가지 방법이 있으므로 전체 문서를 읽고 응용 프로그램 및 테스트 요구 사항에 가장 적합한 것이 무엇인지 결정하는 것이 좋습니다.

+0

감사합니다. 나는 그 문제에 잘못 접근하고 있다고 느꼈다. 이제 body 요소 (존재해야 함)를 '가져오고'그 아래에 경고 대화 상자가 있는지 테스트합니다. 잘 작동합니다. –

관련 문제