2017-04-03 90 views
1

有一个特定的页面有一个数字 - 这是一个链接到列表。我希望能够搜索计数。如果计数为0,则不做任何操作,否则单击数字打开列表。检查量角器中是否存在元素

我在量角器中使用isPresent()函数来搜索它。

我的代码是

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

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

}); 

然而,这总是返回以下错误

错误:超时 - 异步回调不被jasmine.DEFAULT_TIMEOUT_INTERVAL指定的超时时间内调用。

我该如何解决这个问题?

编辑:

的HTML代码同样是

<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

增加茉莉花时间出来conf.js文件。按照以下代码

allScriptsTimeout: 60000, 

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

工作,谢谢!但我必须设定一个非常高的价值。为什么进入else块需要很长时间? – Sid

+0

您的应用程序可能有很多轮询请求。这使执行速度变慢。如果您的解决方案适合您,请选择我的答案 –