not
从一组DOM元素中过滤出不符合条件的元素。
info
与 .filter()
功能相反
info
该命令的查询行为与jQuery中的
.not()
完全一致。
语法
.not(selector)
.not(selector, options)
用法
正确用法
cy.get('input').not('.required') // 获取所有不包含'.required'类的input元素
错误用法
cy.not('.icon') // 错误,不能直接在'cy'上调用
cy.clock().not() // 错误,'clock'不返回DOM元素
参数
selector (字符串选择器)
用于排除匹配DOM元素的选择器。
options (对象)
传入选项对 象以修改.not()
的默认行为。
选项 | 默认值 | 描述 |
---|---|---|
log | true | 在命令日志中显示该命令 |
timeout | defaultCommandTimeout | 等待.not() 解析的超时时间,超过则超时 |
生成结果
.not()
返回它找到的新DOM元素集合。.not()
是一个查询命令,可以安全地继续链式调用其他命令。
示例
选择器
获取不包含active
类的元素
<ul>
<li>首页</li>
<li class="active">关于</li>
<li>服务</li>
<li>定价</li>
<li>联系</li>
</ul>
cy.get('ul>li').not('.active').should('have.length', 4) // 结果为true
规则
要求
.not()
必须链式调用在返回DOM元素的命令之后。
断言
超时设置
.not()
可能因等待元素存在于DOM中而超时。.not()
可能因等待添加的断言通过而超时。
命令日志
查找所有不是提交类型的按钮
cy.get('form').find('button').not('[type="submit"]')
以上命令将在命令日志中显示为:

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