1.get()和within() 的使用
- 直接在cy后面,或者在其他命令后面,只要是直接在整个document中找寻元素,都可以使用get()方法获取元素
- 如果在其他命令后面,目标作用域是是前面command所yield的范围,则使用within()方法
//cy.contains('hello')输出的DOM元素中再get('.class')
cy.contains('hello').within({
cy.get('.class');
})
2.trigger(event)、invoke(‘trigger’,‘event’)和click({force:true})
1、javascript实现的事件如click、mouseover、mousedown、mouseup、mouseleave、mousemove可以使用trigger(event) & invoke(‘trigger’, ‘event’)来触发
cy.get(’.hidden’).trigger(‘mouseover’) //在某元素上触发mouseover事件
cy.get(’.hidden’).invoke(‘trigger’, ‘mouseover’) //在某元素上触发mouseover事件
2、CSS实现的事件如hover则不能使用trigger和invoke方法,应该通过配置click()函数的配置项force为true,即不管页面上元素是否visible,强制点击该元素。
** 前提是该元素确实在DOM树中存在 **
cy.get(’.hidden’).click({force: true}) // 强制点击页面不可见,但存在的元素
cy.get(’.checkbox’).check({ force: true }) //强制勾选页面不可见,但存在的元素
3.get(selector)和contains(selector,content)的区别
1.get(selector)可以按照selector找到所有满足的DOM元素,不仅仅只有一个,这个时候也会带来很多麻烦,会提示报错。
2.contains(selector,content)则是对DOM元素从浅到深进行遍历,找到满足selector和content的第一个元素就返回,不会再向下遍历,但也会带来一些使用上的问题,比如说需要找到第二个元素,那么contains()这个方法就不能起作用了。
原文链接
https://www.jianshu.com/p/31a4fe60ea11