2017-04-03 1 views
1

번호가있는 특정 페이지가 있습니다 (목록에 대한 링크 임). 나는 카운트를 검색 할 수 있기를 원한다. 개수가 0이면 아무 것도하지 않고 숫자를 클릭하여 목록을 엽니 다.각도기에 요소가 있는지 확인하십시오.

저는 각도기에서 isPresent() 함수를 사용하여이를 검색하고 있습니다. 비동기 콜백이 jasmine.DEFAULT_TIMEOUT_INTERVAL에 의해 지정된 제한 시간 내에서 호출되지 않았습니다 - 제한 시간 :

내 코드는 항상 다음과 같은 오류

오류를 반환합니다, 그러나

$('cda-e2e-softwareCountZero').isPresent().then(function(result) { 

if (result) { 
    // No Software  
} else { 
    element(by.id('cda-e2e-softwareCount')).click(); 
} 

}); 

입니다.

이 문제를 어떻게 해결할 수 있습니까?

편집 :

같은에 대한 HTML 코드 conf.js 파일에

<span class="panelHead"> 
          Softwares 
          <a ng-if="summaryMetaDataList.softwares.length != 0" 
           ng-href="/application/application/{{summaryMetaDataInfo.entityId || alternateText}}/software/list{{dateParamsUrl}}"> 
           <span style="text-decoration: none; color: black;">(</span><span class="textUnderlineBlue" id="cda-e2e-softwareCount">{{summaryMetaDataList.softwares.length}}</span><span style="text-decoration: none; color: black;">)</span> 
          </a> 
          <a ng-if="summaryMetaDataList.softwares.length == 0"> 
           <span style="color: black" id="cda-e2e-softwareCountZero">({{summaryMetaDataList.softwares.length}})</span> 
          </a> 
</span> 
+0

HTML 코드를 붙여 넣으십시오. –

+0

참조 용 HTML 코드도 추가되었습니다 – Sid

+1

로케이터는 다음과 같이 $ ('# cda-e2e-softwareCountZero')와 같아야합니다. 이 로케이터로 시도하십시오 –

답변

0

증가 재스민 타임 아웃이다. 아래 코드를 따르십시오.

allScriptsTimeout: 60000, 

    jasmineNodeOpts: { 
    // Default time to wait in ms before a test fails. 
    defaultTimeoutInterval: 12000 
    }, 
+0

그 덕분에, 고마워요! 그러나 저는 매우 높은 가치를 지녀야했습니다. else 블록에 들어가는 것이 왜 그렇게 오래 걸립니까? – Sid

+0

애플리케이션에 많은 폴링 요청이있을 수 있습니다. 실행 속도가 느려집니다. 당신의 솔루션이 당신을 위해 작동한다면 내 대답을 틱하십시오 –

관련 문제