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()
的默认行为。
选项 | 默认值 | 描述 |
---|---|---|
log | true | 在 命令日志 中显示该命令 |
timeout | defaultCommandTimeout | 等待 .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
时,控制台将输出以下内容:
