Cypress系列(20)- 可操作类型的命令 之 location()、go() 、reload()、viewport()

220 阅读3分钟

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

location作用

获取当前页面的  window.location 

 

语法格式

cy.location()
cy.location(key)
cy.location(options)
cy.location(key, options)

options: 只有 timeout 和 log,不再展开讲了

 

正确写法

cy.location()

// 获取 host 值     
cy.location('host')

// 获取 port 值
cy.location('port')

 

location 对象有哪些属性

  • hash
  • host
  • hostname
  • href
  • origin
  • pathname
  • port
  • protocol
  • search
  • toString

 

实际栗子

测试文件代码

 

测试结果

 

location() 命令的产物

 

总结

 cy.location("host") 这样写只会返回对应属性的值

go作用

在浏览器历史记录中,访问前一个或后一个 URL

 

语法格式

cy.go(direction)
cy.go(direction, options)

options: 只有 timeout 和 log,不再展开讲了

 

正确格式

// 相当于单击浏览器左上角的后退←按钮
cy.go("back")

// 相当于单击浏览器左上角的前进→按钮
cy.go("forward")

 

实际栗子

// 相当于单击浏览器左上角的后退←按钮
cy.go(-1)

// 相当于单击浏览器左上角的前进→按钮
cy.go(1)

 

测试文件代码

reload作用

刷新页面

 

语法格式

cy.reload()
cy.reload(forceReload)
cy.reload(options)
cy.reload(forceReload, options)

options: 只有 timeout 和 log,不再展开讲了

 

forceReload

  • 是否在不使用缓存的情况下重新加载当前页面
  • true 表示强制重新加载而不使用缓存,所有资源文件都会重新拉取一遍,好处就是可从取服务器获取最新的资源文件,坏处就是加载时间会变长

 

正确格式

cy.reload()

 

实际栗子

测试文件代码

 

viewport作用

控制浏览器窗口的尺寸和方向

 

重点

  • 也可以通过在配置项中定义 viewportWidth 和 viewportHeight 来全局设置浏览器窗口的宽度和高度
  • 默认宽高: 1000px * 660px

 

语法格式

cy.viewport(width, height)
cy.viewport(preset, orientation)
cy.viewport(width, height, options)
cy.viewport(preset, orientation, options)

 

参数讲解

width、height

  • 必须为非负数
  • 像素单位 px

 

options

只有 log,不再展开讲了

 

orientation 

  • 屏幕的方向
  • 默认: 纵向, portrait 
  • 可改横向, landscape 

 

preset 

预设值,Cypress 提供了以下的预设值

预设值宽度高度
ipad-27681024
ipad-mini7681024
iphone-3320480
iphone-4320480
iphone-5320568
iphone-6375667
iphone-6+414736
iphone-x375812
iphone-xr414896
macbook-111366768
macbook-131280800
macbook-151440900
samsung-note9414846
samsung-s10360760

 

正确格式

 

重要事项

独立命令

 cy.viewport() 后面不能再链接其他命令

 

自动缩放

  • 默认情况下,如果屏幕不够大,无法显示应用程序所有像素,则 Cypress 会将应用程序缩放并居中,以适应 Cypress Test Runner
  • 缩放应用程序不会影响应用程序的任何计算或行为
  • 自动缩放好处: 无论屏幕大小如何,测试都始终通过或失败;测试最终在 CI 中运行,因此无论 Cypress 在什么计算机上运行,所有 viewports 都将相同

 

Cypress.config()

也可以通过此命令来设置全局 viewport 宽高