Cypress系列(15)- Cypress 元素定位選擇器


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

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

 

前言

  • 做 UI 自動化測試,每個測試用例都會包含對元素的操作
  • 健壯、可靠的元素定位策略可以保障測試成功率的提高
  • 相對於其他測試框架來說,Cypress 提供了特別的定位策略,讓你無須過多擔心因定位失敗而導致的測試失敗

 

做元素定位時,你是否曾遇到過以下難題

  • 元素 ID 或 class 是動態生成的
  • 你使用了 CSS選擇器去定位,但開發把元素CSS樣式改掉了

這種情況下通常會測試失敗

 

Cypress 如何解決上述難題

提供了 data-* 屬性,包含了下面三個定位器

  1. data-cy
  2. data-test
  3. data-testid

 

重點

  • 它們都是 Cypress 專有的定位器,僅用來測試
  •  data-* 屬性和元素的行為或樣式無關,意味着即使 CSS 樣式或 JS 行為改變,也不會導致測試失敗
  • 注意:在實際項目中,需要自己將 data-* 屬性加到元素中,意味着你得有權限修改代碼

 

html 前端代碼

 

測試文件代碼

 

常規選擇器

會點前端的童鞋應該都知道,在 css 里面怎么寫, 這里就怎么寫,敲簡單 的啦

 

#id 選擇器

通過元素的 id 屬性來定位

cy.get("#main1").click()

 

.class 選擇器

通過元素的 class 屬性來定位

cy.get(".btn").click()

 

屬性選擇器

通過元素的各種屬性來定位

cy.get("button[id='main2']").click()

 

:nth-child(n) 選擇器

html 代碼栗子

 

測試代碼

cy.get("ul>li:nth-child(2)").click()

 

Cypress.$定位器

針對難以用普通方式定位的元素,Cypress 還提供了 JQuery 選擇器(對我來說簡直是福音)

格式: Cypress.$(selector) 

Cypress.$('#main2')
// 等價於
cy.get('#main2')

 

拓展

對於更多的 css 選擇器寫法,可以看看這篇文章:https://www.cnblogs.com/poloyy/p/12629662.html

只需要關注選擇器那一列就好啦

 

結尾

本文是博主基於對蔡超老師的《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