为什么我必须修剪元素文本以检查它是否为空?

问题描述 投票:0回答:1

我的问题很简单,但我还没有找到与之对应的任何答案,我如何断言 Cypress 的元素为空?我只想确保该元素不包含文本。

我最初的试用是

cy.find('.someElement').should('have.text', '');

但是我遇到了这个错误,即使我的 div 在 DOM 中是空的

expected '<div.someElement>' to have text '', but the text was '\n \n \n      '

我让它工作使用

 cy.find('.someElement')
    .should(($el) => {
      expect($el.text().trim()).equal('');
    });

但我不明白为什么我必须修剪元素的文本。

javascript testing cypress
1个回答
4
投票

有些元素包含空格,有些则不包含。如果您的元素定义中有换行符,则它包含空格。

<div class='this_element_contains_whitespace'>
  <span></span>
</div>

<div class='this_element_doesnt'><span></span></div>

trim()
用于让第一个元素通过测试。

© www.soinside.com 2019 - 2024. All rights reserved.