从另一个div类获取div类的属性以进行角度量角器测试

时间:2018-10-15 08:47:02

标签: javascript angular protractor

我在Angular量角器测试中非常陌生。在我的应用程序中,我正在实现用于测试自动化的量角器框架。现在,我有一个步骤,其中基于单击按钮出现一个对话框。在对话框中有一个对话框内容,其中包含两个div。一个显示的是图表是否成功加载,另一个显示的是错误消息。现在,我想实现一个if-else条件,该条件将检查当时哪些内容可用。如果条件没有执行,问题就是这。即使存在错误内容,它也始终处于其他条件。

这是我的对话框组件类

<div class="action-row-align dialog-component">
<div class="dialog-content" mat-dialog-content >
    <div *ngIf="isLoading && !errorText" class="loading-content">
        <mat-spinner></mat-spinner>
        <h6>{{ loadingInfoText }}</h6>

    </div>
    <div class="error-content" *ngIf="!isLoading && errorText" >
        <mat-card>
            <mat-card-title>{{ 'Error' | translate }}</mat-card-title>
            <mat-card-content>{{ errorText }}</mat-card-content>
        </mat-card>

    </div>

 </div>

我的hasClass方法是

    export class Utility {
    static hasClass = (element, className) => element.getAttribute('class').then((classes) => classes.split(' ').indexOf(className) !== -1)
}

这是我的测试条件

let dialog = element(by.css('.dialog-component'));
let dialogContent = element(by.css('.dialog-content'));
        await click.onto(option);
        await expect(dialogContent.isDisplayed()).toBe(true);
        if (await Utility.hasClass( await dialogContent, 'error-content') === true) {
                await console.log(' chart error' );
        } else {
        await expect(dialog.isDisplayed()).toBe(true);
        await expect(chart.isDisplayed()).toBe(true);

        }

1 个答案:

答案 0 :(得分:0)

选择器中没有点。 应该: grouping

编辑: 问题是您正在尝试检查let dialogContent = element(by.css('.dialog-content'));元素是否具有dialogContent类。没有。 'error-content'的孩子正在上课。您需要找到该选择器的子代。

编辑2: 我将简化代码:

dialogContent