Skip to main content
Cypress应用

find

获取特定选择器的后代 DOM 元素。

info

该命令的查询行为与 jQuery 中的 .find() 完全一致。

语法

.find(selector)
.find(selector, options)

用法

正确用法

cy.get('.article').find('footer') // 获取 '.article' 内的 'footer' 元素

错误用法

cy.find('.progress') // 错误,不能直接链式调用 'cy'
cy.exec('node start').find() // 错误,'exec' 不返回 DOM 元素

参数

selector (字符串选择器)

用于过滤匹配的后代 DOM 元素的选择器。

options (对象)

传入一个选项对象以改变 .find() 的默认行为。

选项默认值描述
logtrue命令日志 中显示该命令
timeoutdefaultCommandTimeout等待 .find() 解析的 超时时间
includeShadowDomincludeShadowDom 配置选项值是否遍历 shadow DOM 边界并在结果中包含 shadow DOM 中的元素。

生成结果 了解主题管理

  • .find() 返回它找到的新 DOM 元素。
  • .find() 是一个查询命令,可以安全地链式调用其他命令。

示例

选择器

获取父元素中的 li 元素

<ul id="parent">
<li class="first"></li>
<li class="second"></li>
</ul>
// 返回 [<li class="first"></li>, <li class="second"></li>]
cy.get('#parent').find('li')

规则

要求 了解命令链

  • .find() 必须链式调用在返回 DOM 元素的命令之后。

断言 了解断言

超时设置 了解超时机制

  • .find() 可能会因等待元素 存在于 DOM 中 而超时。
  • .find() 可能会因等待添加的断言通过而超时。

命令日志

在导航中查找 li 元素

cy.get('.left-nav>.nav').find('>li')

以上命令将在命令日志中显示为:

命令日志 find

当点击命令日志中的 find 命令时,控制台会输出以下内容:

console.log find

历史

版本变更
5.2.0添加了 includeShadowDom 选项。

另请参阅