赛普拉斯:cy.get() 与 cy.contains()。为什么我得到不同的结果?

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

我在运行这两个命令时遇到了一些问题:

  • cy.get('prj-ui-menu').contains('证据')
  • cy.contains('prj-ui-menu','证据')

第一个完美运行,但第二个失败,因为它没有获取任何“prj-ui-menu”元素。这是为什么?我知道产生的元素可能不同,但在第一种情况下工作而不是在第二种情况下工作是我不理解的。知道为什么会这样吗?

我试着阅读赛普拉斯的文档,但我在那里没有得到任何线索。只有为什么会产生一个或另一个元素。

dom automated-tests cypress
1个回答
0
投票

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
元素,因为这是我们指定的选择器,它(或子元素)包含“证据”。

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