使用   断言元素的文本

Ven*_*ata 10 mocha.js chai cypress

我需要检查一个 Div 标签的文本,并确保它显示的不是正确的文本

这是 HTML 代码:

HTML 标签

这是我为断言内容而编写的步骤定义

    Given(/^offer summary section should display "([^"]*)" amount against "([^"]*)"$/, (charge, labelText) => {
    const parentElement = cy.get('.c-offer-summary > .c-offer-summary__ledger').children('.c-ledger__section').find('.c-ledger__row-name').contains(labelText).parent();
    parentElement.find('.c-ledger__row-amount').invoke('text').should('eq',charge);
});
Run Code Online (Sandbox Code Playgroud)

但是 cypress 抛出了一个错误:

错误

我不知道我哪里错了!!!:(

任何帮助表示赞赏

Zai*_*ain 11

基于Maccurt的断言(它为 Cypress 日志中打印的断言信息提供了更多上下文)和Hiram的替换功能,我编写了这个断言。

cy.get(".c-ledger__row-amount").invoke('text').then((text) => {
    expect(text.replace(/\u00a0/g, ' ')).equal('DKK 15.00');
});
Run Code Online (Sandbox Code Playgroud)

它适用于我的情况。这是断言结果的屏幕截图: 在此处输入图片说明


Jen*_*ane 5

您可以使用 Cypress 的.contains()命令来去除空格:

cy.get('.c-ledger__row-amount').contains('DKK 15.00')
Run Code Online (Sandbox Code Playgroud)

或者您可以删除空格字符然后断言:

cy.get('.c-ledger__row-amount')
  .invoke('text')
  .invoke('replace', /\u00a0/g, ' ')
  .should('eq', 'DKK 15.00')
Run Code Online (Sandbox Code Playgroud)


Mac*_*urt 0

我假设您正在尝试测试 .c-ledger__row-amount 是否为“DKK 15.00”。尝试这个。

cy.get(".c-ledger__row-amount").invoke('text').then((text) => {
         expect(text.trim()).equal('DKK 15.00');
});
Run Code Online (Sandbox Code Playgroud)

有时你必须删除尾随空格