e2e ionic2测试代码不起作用

时间:2016-05-03 12:25:51

标签: angular protractor ionic2

我正在尝试使用量角器为我的应用编写一个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>

在我的spec文件中,我使用了这个

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

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

如果我发送密钥,它会在该文本框中发送密钥,但我无法通过使用toBe(“”)检查它,toContain('')我不能指望任何这个 有人可以帮我吗

1 个答案:

答案 0 :(得分:1)

  

'ElementFinder'类型中不存在'toContain'属性。

这里有几个问题:

  • 你把报价混淆了。需要根据toContain()
  • 的结果调用expect()
  • 因为您需要检查输入字段是否为空,所以您需要在输入的toEqual("")属性上使用value
  • 我没有在您发布的HTML中看到包含text-input类的元素,但我假设您知道此处的内容

修正版:

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