Cypress.$
Cypress 自动包含 jQuery 并将其暴露为
Cypress.$
。
这是在开发者工具中调试时_同步_查询元素的绝佳方式。
语法
Cypress.$(selector)
// 其他代理的 jQuery 方法
Cypress.$.Event
Cypress.$.Deferred
Cypress.$.ajax
Cypress.$.get
Cypress.$.getJSON
Cypress.$.getScript
Cypress.$.post
用法
正确用法
Cypress.$('p')
错误用法
cy.$('p') // 错误,不能链式调用 'cy'
示例
选择器
const $li = Cypress.$('ul li:first')
cy.wrap($li)
.should('not.have.class', 'active')
.click()
.should('have.class', 'active')
注意事项
Cypress.$ 与 cy.$$
你也可以使用 cy.$$
查询 DOM 元素。但 Cypress.$
和 cy.$$
是不同的。
Cypress.$
指的是 jQuery
函数本身。你可以用 Cypress.$
做任何能用 jQuery
函数做的事情。因此,以下两个示例都有效。
Cypress.$.each([1, 2, 3], (index, value) => {
expect(index).to.eq(value)
}) // 有效
$.each([1, 2, 3], (index, value) => {
expect(index).to.eq(value)
}) // 同样有效
但 cy.$$
是 jQuery.fn.init
函数的包装器。换句话说,你只能用 cy.$$
查询 DOM 元素。因此,像 jQuery.each
、jQuery.grep
这样的 jQuery 工具函数在 cy.$$
上不起作用。
cy.$$.each([1, 2, 3], (index, value) => {
expect(index).to.eq(value)
}) // 失败