使用量角器执行时无法读取未定义的属性'Msgtext'



我在我的PO文件中创建了一个函数,如下

'use strict';
var FunLib = function(){
this.Msgtext = element(by.css('.layout-row.flex-gt-md-66.flex'));
this.AltEle = element(by.css('[ng-show="alert"]'));
this.ExcMsg1 = "YOU ARE LACKING ONE OR MORE..."
//Function Button Click
this.ButtonClick = function(ButtonName){
    this.ButtonName = ButtonName;
    this.Button = element(by.buttonText(ButtonName));
    this.Button.click();
};
//Function to handle exception of Permissions
this.PermissionExc = function() {
    this.AltEle.isDisplayed().then(function(IsPresent){
        console.log(IsPresent);
        if (IsPresent) {
            this.Msgtext.getText().then(function(text) {
                console.log(text);
                var Message = text;
                if (Message == this.ExcMsg1) {
                    this.ButtonClick('Close');
                }
            });
        }
    });
    browser.sleep(2000);
}
};
module.exports = FunLib;

在我的规格文件中,我使用了以下内容,

FuncLib.PermissionExc();

当我执行代码时,我会遇到错误" typeError:无法读取未定义的属性'msgtext'。有人可以告诉我我要去哪里出错吗?请建议。

这是一个著名的JS关闭问题。您无法在嵌套功能中访问此。因为的范围您使用的没有msgtext

this.PermissionExc = function() {
  var _this = this;
this.AltEle.isDisplayed().then(function(IsPresent){
    console.log(IsPresent);
    if (IsPresent) {
        _this.Msgtext.getText().then(function(text) {
            console.log(text);
            var Message = text;
            if (Message == this.ExcMsg1) {
                this.ButtonClick('Close');
            }
        });
    }
});
browser.sleep(2000);
}

也适用于他人

最新更新