Skip to main content
Cypress应用

prevUntil

获取匹配 DOM 元素集合中每个元素的所有前一个同级元素,直到但不包括提供的元素。

info

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

语法

.prevUntil(selector)
.prevUntil(selector, filter)
.prevUntil(selector, filter, options)
.prevUntil(element)
.prevUntil(element, filter)
.prevUntil(element, filter, options)

用法

正确用法

cy.get('p').prevUntil('.intro') // 获取 'p' 元素之前的所有同级元素,直到 '.intro'

错误用法

cy.prevUntil() // 错误,不能直接链式调用 'cy'
cy.location().prevUntil('path') // 错误,'location' 不返回 DOM 元素

参数

selector (字符串选择器)

停止查找前一个同级元素的选择器。

element (DOM 节点, jQuery 对象)

停止查找前一个同级元素的 DOM 节点。

filter (字符串选择器)

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

options (对象)

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

选项默认值描述
logtrue命令日志 中显示该命令
timeoutdefaultCommandTimeout等待 .prevUntil() 解析的超时时间,超过则 超时

生成结果 了解主题管理

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

示例

选择器

查找 #nuts 元素之前的所有同级元素,直到 #veggies

<ul>
<li id="fruits" class="header">Fruits</li>
<li>apples</li>
<li>oranges</li>
<li>bananas</li>
<li id="veggies" class="header">Vegetables</li>
<li>cucumbers</li>
<li>carrots</li>
<li>corn</li>
<li id="nuts" class="header">Nuts</li>
<li>walnuts</li>
<li>cashews</li>
<li>almonds</li>
</ul>
// 返回 [<li>cucumbers</li>, <li>carrots</li>, <li>corn</li>]
cy.get('#nuts').prevUntil('#veggies')

规则

要求 了解命令链

  • .prevUntil() 必须链式调用自返回 DOM 元素的命令。

断言 了解断言

超时设置 了解超时机制

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

命令日志

查找 #nuts 元素之前的所有同级元素,直到 `#veggies

cy.get('#nuts').prevUntil('#veggies')

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

命令日志 prevUntil

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

控制台日志 prevUntil

另请参阅