Cypress系列(23)- 可操作類型的命令 之 trigger()


如果想從頭學起Cypress,可以看下面的系列文章哦

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

 

.trigger()

在DOM元素上觸發指定事件

 

語法格式

.trigger(eventName)
.trigger(eventName, position)
.trigger(eventName, options)
.trigger(eventName, x, y)
.trigger(eventName, position, options)
.trigger(eventName, x, y, options)

 

參數講解

eventName

需要觸發事件名稱

 

position

每個元素都有九個 position,具體可看下圖

 

x , y

距離 DOM 元素左上角的坐標,x 是橫軸,y 是豎軸

 

options

 

除了上述的通用 option,還有一些事件特有的 options

  

 

  • clientX、clientY:相對於瀏覽器左上角的距離
  • pageX、pageY:相對於整個頁面左上角的距離
  • screenX、screenY:相對於電腦屏幕左上角的距離

 

正確用法

 //  在 a 標簽上觸發 mousedown 事件
cy.get('a').trigger('mousedown')

 

錯誤用法

// 不能直接通過 cy 調用
cy.trigger('mousedown')

// location 並不是 DOM 元素
cy.location().trigger('mousedown')

 

 

鼠標事件的栗子

前言

在 DOM 元素上觸發事件之前,DOM 元素必須處於【可交互】狀態(必須可見並 且不能禁用)

 

hover 的栗子

 

長按的栗子

 

不同的鼠標按鈕

 

添加 options 的栗子

指定事件不應該冒泡

cy.get('#s-usersetting-top').trigger('mouseover', {bubbles: false})

默認情況下,指定的事件將在 DOM 樹中冒泡。false 可以防止事件冒泡

 

設置 clientX 和 clientY

這將覆蓋基於元素本身的默認自動定位(x、y),對於  mousemove  之類的事件很有用,可能需要將元素拖動到元素本身之外的地方,基於瀏覽器本身的X、Y坐標

cy.get('button').trigger('mousemove', { clientX: 200, clientY: 300 })

 

結尾

本文是博主基於對蔡超老師的《Cypress 從入門到精通》閱讀理解完后輸出的博文,並附上了自己的理解

對書籍感興趣的,大家可以參考本篇博客:https://www.cnblogs.com/poloyy/p/13052972.html,考慮自身需求進行購買

 

我的博客即將同步至騰訊雲+社區,邀請大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=12vd92hxgwgj1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM