Cypress系列(17)- 可操作类型的命令 之 select()、scrollIntoView()

194 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第17天,点击查看活动详情

.focus() 命令

聚焦 DOM 元素

 

语法格式

.focus()
.focus(options)

正确写法

cy.get('input').first().focus() 

重点

  • 必须是 DOM 元素才能调用 .focus() 方法,不一定是要输入框哦
  • 确保 DOM 元素是可聚焦

 

错误写法

// 不能直接用 cy 调用
cy.focus('#search') 

// 必须是 DOM 元素才能调用
cy.window().focus()  

options

 

.blur()

让聚焦的 DOM 元素失焦

 

语法格式

.blur()
.blur(options)

正确写法

// 输入内容后,再让输入框失焦
cy.get('[type="email"]').type('me@email.com').blur()

// 先聚焦再失焦
cy.get('[tabindex="1"]').focus().blur()

重点

  • 必须是 DOM 元素才能调用  .blur()  方法,不一定是要输入框哦
  • 确保 DOM 元素是可失焦

错误写法

// 不能直接用 cy 调用
cy.blur('#search') 

// 必须是 DOM 元素才能调用
cy.window().blur()  

options

scrollIntoView 作用

将指定  DOM 元素滑动到可视视图中的左上角

语法格式

.scrollIntoView()
.scrollIntoView(options)

 

正确写法

// 将 footer 元素 滚动到视图中
cy.get('footer').scrollIntoView() 

 

错误写法

// cy 不能直接调用
cy.scrollIntoView('footer') 

// 必须是 DOM 元素调用
cy.window().scrollIntoView()

options

 

实际栗子

html 代码

 

测试文件代码

 

测试结果

 

 

 

注意

Cypress 运行的命令快照不会显示滚动的过程,如果要查看滚动的过程,需要用 .pause() 遍历每个命令,或者通过观察测试运行的视频