首页 > 解决方案 > 使用量角器茉莉单击窗口通知消息

问题描述

我正在使用量角器框架 Jasmine runner 进行 Angular 测试。如果每个项目有 css 选择器,我可以单击它。现在的一个问题是我的应用程序中有一个删除按钮。如果我点击删除按钮,有一个窗口通知消息有两个选项确定,取消。我看不到任何 css 选择器,我可以通过它在运行测试中单击确定。结果测试失败。

我正在用我的代码进行解释。

我的html代码

<mat-card-actions>
                    <button mat-raised-button color="warn" (click)="onDeleteUser(selectedUser)" class="btn btn-default t-delete-user" [disabled]="!selectedUser.userId">{{ 'Delete'}}</button>
</mat-card-actions>

我的打字稿代码

onDeleteUser( user ) {
    if ( window.confirm( this.translateService.instant( "DeleteUser" )) ) {
        this.userService.delete( this.selectedUser ).subscribe(
            succ => {
                this.notificationSerice.showOK( this.translateService.instant( "UserDeleted" ) );
                this.selectedUser = null;
                this.selectedUserRole = null;
                this.loadUserPage();
            },
            err => this.notificationSerice.showError(  this.translateService.instant( "CouldNotDeleteUser" ))
        );
    }
}

在量角器测试中我是这样写的

let deleteUser = element(by.css('.t-delete-user'));

it('Delete button is clicked and a pop up message is appeared', async () => {
    await click.onto(deleteUser);
    //click.onto(ok);
    // but do not know how can I click ok from the window message

});

我附上了邮件的图片 在此处输入图像描述

标签: angularjsjasmineprotractorkarma-jasmine

解决方案


尝试这个

browser.switchTo().alert().accept();

如果这不起作用试试这个

browser.ignoreSynchronization = true;
browser.switchTo().alert().accept();
browser.ignoreSynchronization = false;

有关更多信息,请参阅https://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_AlertPromise.html


推荐阅读