Cypress系列(51)- its() 命令详解

2020-09-22 16:00:59 浏览数 (1)

如果想从头学起Cypress,可以看下面的系列文章哦

https://www.cnblogs.com/poloyy/category/1768839.html

作用

获取上一条命令结果的属性值

语法格式

代码语言:javascript复制
.its(propertyName)
.its(propertyName, options)
参数说明

propertyName:索引、属性名、要获取的嵌套属性名称

options:log、timeout

命令返回结果

属性值

正确写法

代码语言:javascript复制
cy.wrap({ width: '50' }).its('width') // 获取宽度属性
cy.window().its('sessionStorage')     // 获取 sessionStorage 属性

错误写法

代码语言:javascript复制
cy.its('window')                // 不能链接在 cy 后面
cy.clearCookies().its('length') // clearCookies 并不返回对象

各种栗子

获取字典对象的属性值

代码语言:javascript复制
cy.wrap({age: 52}).its('age').should('eq', 52) // true

数组对象,根据索引取值

代码语言:javascript复制
cy.wrap(['polo', 'yy']).its(1).should('eq', 'yy')

获取元素的属性值

代码语言:javascript复制
cy
.get('ul li')
.its('length')
.should('be.gt',4)

获取字符串对象的属性值

代码语言:javascript复制
cy
.url()
.its('length')
.should('be.gt', 20)

属性值是函数

代码语言:javascript复制
const fn = () => {
      return 42
}

cy.wrap({getNum: fn}).its('getNum').should('be.a', 'function')

返回的是函数对象本身,而不是 return 的值

获取嵌套属性值

代码语言:javascript复制
const user = {
  contacts: {
    work: {
      name: 'Kamil'
    }
  }
}

cy.wrap(user).its('contacts.work.name').should('eq', 'Kamil') // true

0 人点赞