我在运行这两个命令时遇到了一些问题:
第一个完美运行,但第二个失败,因为它没有获取任何“prj-ui-menu”元素。这是为什么?我知道产生的元素可能不同,但在第一种情况下工作而不是在第二种情况下工作是我不理解的。知道为什么会这样吗?
我试着阅读赛普拉斯的文档,但我在那里没有得到任何线索。只有为什么会产生一个或另一个元素。
cy.contains()
与选择器一起使用时,它会产生匹配的选择器,而不是与 contains
搜索匹配的子元素。
考虑以下 DOM:
<html>
<prj-ui-menu>
<div>"Evidences</div>
</prj-ui-menu>
</html>
运行
cy.get('prj-ui-menu')
时,Cypress 会生成 prj-ui-menu
元素。
运行
cy.get('prj-ui-menu').contains('Evidences')
时,cy.get()
命令生成 prj-ui-menu
元素,用作 cy.contains()
的父元素,它生成 div
在 prj-ui-menu
下。
运行
cy.contains('prj-ui-menu', 'Evidences')
时,赛普拉斯会生成 prj-ui-menu
元素,因为这是我们指定的选择器,它(或子元素)包含“证据”。