Jasmine 获得';预期未定义为false';茉莉花量角器

Jasmine 获得';预期未定义为false';茉莉花量角器,jasmine,protractor,Jasmine,Protractor,我正在验证是否不能显示其中一个元素 代码如下: <li ng-class="{active: (subview == 'add')}" ng-show="iSU || dp.ua" class="ng-hide"><a href="#/setup/users/all/add/" class="ng-binding">Create user</a></li> 等级库文件: expect(usersPage.isCreateTabDisplayed(

我正在验证是否不能显示其中一个元素

代码如下:

<li ng-class="{active: (subview == 'add')}" ng-show="iSU || dp.ua" class="ng-hide"><a href="#/setup/users/all/add/" class="ng-binding">Create user</a></li>
等级库文件:

expect(usersPage.isCreateTabDisplayed()).toBe(false);
方法的usersPage定义:

this.isCreateTabDisplayed = function()
    {
        waitUtil.isElementVisible(usersTab,repo.configData.configuration.longWaitTime);
        createUserTab.isPresent()
            .then( function(displayed) {
                console.log("create user tab  : "+ displayed);
                return displayed;
            });
    }
元素定义如下:

<li ng-class="{active: (subview == 'add')}" ng-show="iSU || dp.ua" class="ng-hide"><a href="#/setup/users/all/add/" class="ng-binding">Create user</a></li>
  • 当我运行代码时,我收到“Expected undefined to be false”错误消息


    控制台日志显示为“create user tab:false”,但我为什么会收到错误消息以及如何处理它。

    您需要有
    序列和
    返回

    this.isCreateTabDisplayed = function()
        {
            return waitUtil.isElementVisible(usersTab,repo.configData.configuration.longWaitTime).then(() => {
                return createUserTab.isPresent().then( function(displayed) { // or you can just "return createUserTab.isPresent()"
                    console.log("create user tab  : "+ displayed);
                    return displayed;
                });
            });
        }
    
    另外,你的问题中有量角器标签,为什么不使用它呢? 您的代码应该如下所示:

    expect(usersPage.getCreateTab().isDisplayed()).toBe(false)


    如果我遗漏了什么,请在评论中注明。

    您好,谢谢您的时间,这很有效。我使用了以下格式,
    this.isCreateTabDisplayed=function(){return browser.wait(ExpectedConditions.visibilityOf(usersTab)、parseInt(repo.configData.configuration.mediumWaitTime))。然后(()=>{return createUserTab.isPresent();});}