使用&nbsp确认元素的文本

问题描述 投票:3回答:2

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

这是HTML代码:

HTML Tag

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

    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);
});

但是柏树抛出了一个错误:

Error

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

任何帮助表示赞赏

mocha chai cypress
2个回答
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');
});

有时您必须删除尾随空格


0
投票

这看起来像Replacing "&nbsp" from javascript dom text node类似的问题。

请尝试此命令链

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('satisfy', (text) => text.replace(/\u00a0/g, ' ') === charge);
© www.soinside.com 2019 - 2024. All rights reserved.