나는

2016-07-14 3 views
0

은 내가 호출이나는

module.exports = { 

    url() { 
     return `${this.api.launchUrl}/mypage`; 
    }, 

    sections: { 

     main: { 

      selector: '.foo', 

      elements: { 
       bar: '[name="baz"]', 
      }, 
     }, 
    }, 
}; 

처럼 그리고 내 시험의 before() 기능에 많이 보이는 페이지 객체를 생성 한 Nightwatch를 사용하여 내 페이지 개체의 섹션을 정의 할 때 작동) (.navigate을 할 수 없습니다 이게 맘에 든다.

module.exports = { 

    before(browser) { 
     const page = browser.page.buy.myPageObject(); 
     page.navigate(); 
     page.sections.main.waitForElementVisible('@bar'); 
    }, 

    (...) 
}; 

나는 완전히 침묵으로 인사한다. 오류가 기록되지 않고 브라우저 창이 열리지 않으며 잠시 후 프로세스가 자동으로 종료됩니다. 내가 섹션을 사용하지 않는 내 페이지 객체를 변경하는 경우

지금 : page.waitForElementVisible('@bar');에 시험에서 적절한 선을

module.exports = { 

    url() { 
     return `${this.api.launchUrl}/mypage`; 
    }, 

    //sections: { 

    // main: { 

    //  selector: '.foo', 

      elements: { 
       bar: '[name="baz"]', 
      }, 
    // }, 
    //}, 
}; 

을 변경 내 테스트는 잘 실행됩니다.

url()sectionsdocs에 추가 할 수 없다는 언급을 찾을 수 없습니다. 내 질문에 : 여기에 뭔가 분명한 것이 있습니까? 내가 할 의도가 아니에요?

나는 뭔가 잘못하고있는 경우 적어도 어떤 종류의 오류 메시지가 나타날 것이라고 예상합니다. 주변 코드에는 구문 오류가 없으며 eslint에 의해 성공적으로 구문 분석됩니다.

답변

0

추가 파기는 실제 문제가 섹션에서 명령을 사용할 수 없음을 나타냅니다.

github에 강화로 표시된이 문제는 공개되어 있습니다.

길고도 짧은 이야기, 해결 방법은 이제

const selector = page.section.main.selector; 
    page.waitForElementVisible(selector); 

인이 아니다 "기능을 해당"섹션이 될,하지만 괜찮아요와 테스트를 확인할 수 있습니다 것이 바로 대기 때문에 실제로 입력 존재합니다. 이전의 대기 상태의 핵심은 페이지가 렌더링 될 때까지 기다리는 것입니다.