单击使用量角器茉莉花到窗口通知消息

时间:2018-11-12 13:49:18

标签: angularjs jasmine protractor karma-jasmine

我正在使用量角器框架JasmineRunner进行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

});

我附加了邮件的图片 enter image description here

1 个答案:

答案 0 :(得分:0)

尝试一下

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