【问题标题】:I can't get Text from the class, it returns null我无法从类中获取文本,它返回 null
【发布时间】:2020-01-10 06:18:42
【问题描述】:

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

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

在第一种情况下,我也尝试通过 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")

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

【问题讨论】:

  • 您确定这样做正确吗? element(by.className('noty_text'));

标签: javascript selenium jasmine protractor webdriver


【解决方案1】:

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(/\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")

【讨论】:

  • 非常感谢!在第一种情况下 getAttribute("innerText") 有帮助。在第二种情况下,您对空间的建议对我有所帮助。但现在我得到 Expected undefined 等于'呃哦!这不是电子邮件”。我认为这是因为
    标签,但我也尝试过 innerText.
猜你喜欢
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 2019-03-12
  • 1970-01-01
  • 1970-01-01
  • 2021-09-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多