点击 click()
一般常用的是 .click(options)
// 单击某个元素
.click()
// 带参数的单击
.click(options)
// 在某个位置点击
.click(position)
// 在某个位置点击,且带参数
.click(position, options)
// 根据页面坐标点击
.click(x, y)
// 根据页面坐标点击,且带参数
.click(x, y, options)
用法:
先获取DOM,再对DOM元素操作
.click({ multiple: true , force: true})
.click({ force: true })
// 点击一个butoton
cy.get('.btn').click()
// 点击聚焦状态的元素
cy.focused().click()
// 点击一个包含查询的元素
cy.contains('查询')click()
option | 默认值 | 描述 |
---|---|---|
log | true | 在命令日志中显示命令 |
force | false | 强制执行操作,禁用等待执行操作(这个用的多) |
multiple | false | 连续点击多个元素 |
timeout | defaultCommandTimeout | 执行.click()之前的等待超时时间 |
force: true 的作用
背景
- Cypress 可以通过 Test Runner 的快照找到阻止 DOM 元素交互的情况,但某些情况下可能会阻碍测试的进行
- 比如:有一个嵌套的导航结构,用户必须将鼠标 hover 在一个非常特定的模式中,才能拿到所需的链接
- 当测试时,其实我们只是想获取链接而已,前面过多的繁琐操作可能会导致测试失败
作用
- 当设置了 force: true 时,Cypress 会强制操作命令的发生,避开前面的所有检查
- 你可以传递 { force: true } 给大多数操作命令
// 强制点击,和所有后续事件
// 即使该元素 “不可操作”,也会触发点击操作
cy.get('button').click({ force: true })
当使用 force 时,将不会执行这些操作
- 滚动到视图中
- 确保可见
- 确保未禁用
- 确保没有分离
- 确保它不是只读的
- 确保它没有动画
- 确保未覆盖
- 向后代触发事件
输入 type()
用法场景:
- 文本输入框
- 键盘操作
未完待续--------------------------