Skip to main content
Cypress应用

dblclick

双击一个 DOM 元素。

.dblclick() 之后继续链式调用依赖于该元素的命令是不安全的

语法

.dblclick()
.dblclick(options)
.dblclick(position)
.dblclick(position, options)
.dblclick(x, y)
.dblclick(x, y, options)

用法

正确用法

cy.get('button').dblclick() // 双击按钮
cy.focused().dblclick() // 双击获得焦点的元素
cy.contains('Welcome').dblclick() // 双击第一个包含 'Welcome' 的元素

错误用法

cy.dblclick('button') // 错误,不能从 'cy' 链式调用
cy.window().dblclick() // 错误,'window' 不返回 DOM 元素

参数

position (String)

指定双击的位置。默认位置是 center。有效位置包括 topLefttoptopRightleftcenterrightbottomLeftbottombottomRight

cypress-command-positions-diagram

x (Number)

距离元素左侧的像素距离,用于指定双击位置。

y (Number)

距离元素顶部的像素距离,用于指定双击位置。

options (Object)

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

选项默认值描述
altKeyfalse激活 alt 键(Mac 上是 option 键)。别名:optionKey
animationDistanceThresholdanimationDistanceThreshold元素随时间移动超过的像素距离,以被视为动画
ctrlKeyfalse激活 control 键。别名:controlKey
logtrue命令日志中显示命令
forcefalse强制执行操作,禁用等待可操作性
metaKeyfalse激活 meta 键(Windows 键或 Mac 上的 command 键)。别名:commandKeycmdKey
multipletrue依次双击多个元素
scrollBehaviorscrollBehavior在执行命令前将元素滚动到的视口位置
shiftKeyfalse激活 shift 键。
timeoutdefaultCommandTimeout等待 .dblclick() 解析的超时时间,超过则超时
waitForAnimationswaitForAnimations是否在执行命令前等待元素完成动画

生成结果 了解主题管理

  • .dblclick() 返回与传入相同的元素。
  • .dblclick() 之后继续链式调用依赖于该元素的命令是不安全的

示例

无参数

双击一个锚链接

cy.get('a#nav1').dblclick() // 返回 <a> 元素

位置

指定元素上的双击位置

双击按钮的底部中心位置。

cy.get('button').dblclick('bottom')

坐标

指定相对于左上角的坐标

以下双击将在元素内部执行(距离左侧 30px,距离顶部 10px)。

cy.get('button').dblclick(30, 10)

选项

强制双击,无论其可操作性状态如何

强制双击会覆盖 Cypress 应用的可操作性检查,并自动触发事件。

cy.get('button').dblclick({ force: true })

带位置参数的强制双击

cy.get('button').dblclick('topRight', { force: true })

带相对坐标的强制双击

cy.get('button').dblclick(60, 60, { force: true })

双击页面上找到的所有按钮

默认情况下,Cypress 会依次对每个元素执行双击,并在命令日志中多次记录。

你可以通过传递 multiple: false.dblclick() 来关闭此行为。

cy.get('button').dblclick({ multiple: false })

带组合键的双击

.dblclick() 命令也可以与按键修饰符一起使用,以模拟在双击时按住组合键,例如 SHIFT + 双击

info

你也可以在 .type() 中使用组合键。这提供了跨多个命令按住键的选项。更多信息请参见组合键

以下修饰符可以与 .dblclick() 结合使用。

选项说明
altKey激活 alt 键(Mac 上是 option 键)。别名:optionKey
ctrlKey激活 control 键。别名:controlKey
metaKey激活 meta 键(Windows 键或 Mac 上的 command 键)。别名:commandKeycmdKey
shiftKey激活 shift 键。
Alt 键 + 双击
// 在第一个 <li> 上执行 ALT + 双击
cy.get('li:first').dblclick({
altKey: true,
})

说明

可操作性

元素必须首先达到可操作性

.dblclick() 是一个“操作命令”,遵循所有可操作性的规则。

规则

要求 了解命令链

  • .dblclick() 需要链式调用返回 DOM 元素的命令。

断言 了解断言

  • .dblclick() 会自动等待元素达到可操作状态
  • .dblclick() 会自动重试,直到所有链式断言通过。

超时设置 了解超时机制

  • .dblclick() 可能会因等待元素达到可操作状态而超时。
  • .dblclick() 可能会因等待添加的断言通过而超时。

命令日志

双击一个 div

cy.get('.action-div').dblclick()

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

命令日志 dblclick

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

console.log dblclick

历史

版本变更
6.1.0添加了 scrollBehavior 选项
3.5.0添加了对 forcemultiple 选项的支持。
3.5.0添加了对 positionxy 参数的支持。
3.5.0添加了在 .dblclick() 期间发送 mouseovermousemovemouseoutpointerdownpointeruppointermove 事件的功能。

另请参阅