2016-11-10 6 views
0

단일 페이지 앱을 테스트하고 있으며 사용자가 해당 아이콘을 클릭하면 탐색 페이지가 표시됩니다. 페이지가 이미 열려 있는지 확인하고보고 싶습니다. 이 페이지에는 회사 이름 레이블이 있습니다. 네비게이션 페이지가 표시 될 때 실제로 육안으로 볼 수 있습니다.항목 가시성을 확인하는 데 "해킹"하지 않는 방법이 있습니까?

제가 사용하고있는 문제는 .isDisplayed()true 일 때 돌아오고 있다는 것입니다. 나는 또한 true을 반환하는 EC.visibilityOf()을 사용했습니다. 아래 작품은, 나는 그것에 만족하지 않고, 더 좋은 방법이 있는지 궁금해하고 있습니다.

navigationOpenClick() { 
    if (this.EC.elementToBeSelected(this.navPage.companyName)) { 
     this.navIcon.click(); 
    } 
} 
+0

이 요소가 보이지 않게하는 방법은 여러 가지가 있습니다. 무능력한 요소를 보여줄 수 있습니까? 기본적으로'expect ($ ('. myclass'). isDisplayed()). toBeTruthy();가 진실을 반환하는지 조사해야합니다. 예 : http://www.protractort.org/#/api?view=webdriver.WebElement.prototype.isDisplayed는 작동해야합니다 – bhantol

+0

_ "항목 가시성을 확인하는"해킹 "방법이 있습니까? _ 예 있습니다. - 망할 DOM을 사용해라. –

답변

0

내 뇌는 헛것이 있었고 .isDisplayed()이 약속을 되 돌리는 것을 잊었습니다. 약속을 마치면 .isDisplayed()처럼 일했습니다.

내 없다 "해키"작업 코드는 다음과 같습니다 :

navigationOpenClick() { 
    this.navPage.companyName.isDisplayed().then((displayed) => { 
     if (!displayed) { 
      this.navIcon.click(); 
     }; 
    }); 
}