click 是 Cypress 里最常用的模拟用户操作的方法之一。
这些命令模拟用户与您的应用程序交互。 在幕后,Cypress 会触发浏览器会触发的事件,从而导致应用程序的事件绑定被触发。
在发出任何命令之前,我们检查 DOM 的当前状态并采取一些操作来确保 DOM 元素“准备好”接收操作。
Cypress 将等待元素在 defaultCommandTimeout 的持续时间内通过所有这些检查。
Cypress 有一套复杂的规则判断一个元素是否处于 hiden 状态,见官网。
[图片]
hides overflow 的含义是具有下列至少一种属性:
overflow: hidden, overflow-x: hidden, overflow-y: hidden, overflow: scroll, or overflow: auto
disable: 如果元素 disabled 状态为 true,则无法执行 click.
当许多应用程序重新渲染 DOM 时,它们实际上会删除 DOM 元素并在其位置插入一个新的 DOM 元素,并使用新的更改属性。
Cypress 会检查您要进行断言的元素是否与 DOM 分离。 这会检查元素是否仍在被测应用程序的文档中。
在执行 type 方法时,元素不能是 readonly 状态。
使用 debug 命令有助于排错:
// break on a debugger before the action command cy.get('button').debug().click()
有的时候,我们需要强制抛出 click 事件,哪怕当前元素处于 non-actionable 状态。此时可以使用 force:true 参数。
// force the click and all subsequent events // to fire even if this element isn't considered 'actionable' cy.get('button').click({ force: true })