我无法从该类中获取Text,它返回null

时间:2019-09-07 22:06:41

标签: javascript selenium jasmine protractor webdriver

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

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等于'呃!电子邮件或密码不正确'。

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

2)问题出在空间不足,但我不知道如何添加正确的空间

发件人:

 <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")

错误消息:     期待'哦哦!这不是电子邮件,而是“哦,哦!这不是电子邮件'。

1 个答案:

答案 0 :(得分:0)

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

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

2-只需在replace函数的第二个参数中添加空格,而不是空字符串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")