检查量角器中是否存在元素

时间:2017-04-03 10:29:32

标签: javascript protractor elements

有一个特定的页面有一个数字 - 这是一个列表的链接。我希望能够搜索计数。如果计数为0,则不执行任何操作,否则单击该数字以打开列表。

我在Protractor中使用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>

1 个答案:

答案 0 :(得分:0)

在conf.js文件上增加Jasmine超时。请遵循以下代码

  allScriptsTimeout: 60000,

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