如何在赛普拉斯中删除 \n\t?

How to remove \n\t in Cypress?

我正在将 BDD 与 Cypress 结合使用。我要检查的元素是

所以这个元素在 PageObject 上:

allowPriceEmbeddedBarcodeAtPOS(){       
   return cy.get('im-data-table.hydrated').shadow().find('tr:nth-child(2) > td:nth-child(2)') 
}

在我的步骤定义文件中:

And("Global Configuration is set true", () => {
    platformadmin.allowPriceEmbeddedBarcodeAtPOS().should('contains.text','{"AllowPriceEmbeddedBarcodeAtPOS": true}')
    })

但是当我 运行 cypress 时,它找到了带有 \n\t

的元素

有什么办法可以删除它吗?

你可以这样做:

And('Global Configuration is set true', () => {
  platformadmin
    .allowPriceEmbeddedBarcodeAtPOS()
    .invoke('text')
    .then((text) => {
      expect(text.trim().replace(/[\n\t]/g, '')).to.eq(
        '{"AllowPriceEmbeddedBarcodeAtPOS": true}'
      )
    })
})

您可以使用带有 \s 的正则表达式来删除所有空格

platformadmin.allowPriceEmbeddedBarcodeAtPOS()
  .then($el => $el.text().replace(/\s/g, ''))
  .should('eq','{"AllowPriceEmbeddedBarcodeAtPOS":true}')

参考赛普拉斯食谱 have-attr-assertion