我无法从 class 获取文本,它 returns 为空

I can't get Text from the class, it returns null

请帮助我,我有两个问题:

1) 首先我需要等于来自警报弹出窗口的文本:

<div class="noty_message message"><span class="noty_text">Uh oh! Email or password is incorrect</span></div>

我的代码:

var loginAlert = element(by.className('noty_text'));
expect(loginAlert.getAttribute('text')).toEqual("Uh oh! Email or password is incorrect")

但我每次都收到错误: 预期 null 等于 'Uh oh! Email or password is incorrect'.

在第一种情况下,我还尝试通过 getText() 进行查找

2) 问题出在space,但是我不知道如何添加正确的space

发件人:

 <span class="tooltip-text">Uh oh! This<br>isn’t an email</span>

我的代码:

var newInvalidEmail =  invalidEmail.getText().then(function (text) {
        expect(text.replace(/\n/, '')).toBe("Uh oh! This isn't an email");
    });
    expect(newInvalidEmail).toEqual("Uh oh! This isn't an email")

错误信息: 预期 'Uh oh! Thisisn’t an email' 是 'Uh oh!这不是电子邮件'。

01- 您必须使用 getText()getAttribute("innerText") ,确保只有一个元素具有 noty_text class 名称,如果不起作用,请尝试在找到元素之前等待。

var loginAlert = element(by.className('noty_text'));
expect(loginAlert.getText()).toEqual("Uh oh! Email or password is incorrect")

2- 只需在替换函数的第二个参数中添加 space 而不是空字符串 replace(/\n/, ' '))

var newInvalidEmail =  invalidEmail.getText().then(function (text) {
        expect(text.replace(/\n/, ' ')).toBe("Uh oh! This isn't an email");
    });
    expect(newInvalidEmail).toEqual("Uh oh! This isn't an email")