赛普拉斯:优化查找非常深元素的方法

Cypress: Optimize way to find the very deep element

我正在尝试检查位于 dom 树深处的 span 元素内的文本,我不想使用 get/find 命令序列来查找文本,此处我的 dom 结构是这样的吗:

<td>
  <div>
    <div>
      <div>
        <div></div>
         <div>
           <div>
             <div> </div>
             <span> **target** </span>
           </div>
         </div>
      </div>
     </div>
    <div>
     ...
    </div>
  </div>
</td>

感谢帮助

您可以获得第一个 div element 并按跨度查找。

示例:

const spanEl = cy.get('div').find('span')

如果 parent div element 有 CSS class 或一些独特的属性,那就更容易了。

const spanEl = cy.get('#attribute-of-div-el').find('span')

参考:https://docs.cypress.io/api/commands/get#Get-vs-Find

如果您的 <span> 具有独特的文本,那么您将受益于使用 cy.contains()。它非常强大且未被充分利用。

cy.contains('span', 'Your unique text')

你甚至可以使用正则表达式

cy.contains('span', /your unique text/)