e2e ionic2 测试代码不起作用

e2e ionic2 test code does not work

我正在尝试使用量角器为我的应用程序编写 e2e 这是我的应用程序登录页面

<ion-navbar *navbar primary>
    <ion-title>{{config.organization}} - Login</ion-title>
</ion-navbar>

<ion-content>
    <ion-list>

        <form #loginForm="ngForm" novalidate>
            <ion-item>
                <ion-label floating primary>Username</ion-label>
                <ion-input [(ngModel)]="userProvider.userName" (change)='onUserNameChange()' ngControl="username" type="text" #username="ngForm" id='userNameField' required>
                </ion-input>
            </ion-item>
            <p [hidden]="username.valid || submitted == false" danger padding-left>
                Username is required
            </p>

            <ion-item>
                <ion-label floating primary>Password</ion-label>
                <ion-input [(ngModel)]="userProvider.password" (change)='onPasswordChange()' ngControl="password" type="password" #password="ngForm" id='passwordField' required>
                </ion-input>
            </ion-item>
            <p [hidden]="password.valid || submitted == false" danger padding-left>
                Password is required
            </p>

            <ion-row responsive-sm >
                <button  (click)="onLogin(loginForm)" id="logInButton" type="submit" primary round>Login</button>
            </ion-row>

            <ion-item>
                Server: {{ob3URL}}
            </ion-item>


            <ion-row [hidden]='!wrongCredential'>
                <p danger class='errorElement'>
                    Username / Password is wrong
                </p>
            </ion-row>

        </form>

    </ion-list>

</ion-content>

在我的规范文件中我使用了这个

it('should start with empty fields',() => {
        expect((element.all(by.css('.text-input')).get(0)).toContain(""))
    });

检查天气页面是否有页面加载数据,但是当我执行此操作时,我的终端出现错误 app/pages/login/login.e2e.ts (21,60):属性 'toContain' 在类型 'ElementFinder' 上不存在。 (2339)

如果我发送密钥,它会在该文本框中发送密钥,但我无法使用 toBe(""),toContain('') 检查它,我无法预料到这些 有人可以帮我吗

Property 'toContain' does not exist on type 'ElementFinder'.

这里有几个问题:

  • 你把引号搞混了。 toContain() 需要在 expect()
  • 的结果上调用
  • 由于需要检查输入字段是否为空,因此需要在input
  • value属性上使用toEqual("")
  • 我在您发布的 HTML 中没有看到带有 text-input class 的元素,但我假设您现在知道自己在寻找什么

固定版本:

expect(element.all(by.css('.text-input')).get(0).getAttribute("value")).toEqual("");