簡體   English   中英

Cypress:`cy.contains` 和 `cy.contains` 有什么區別? findByText`

[英]Cypress: what is the difference between `cy.contains` and `cy. findByText`

findByText來自 Cypress 測試庫https://testing-library.com/docs/cypress-testing-library/intro

contains “原生”的賽普拉斯

我想知道它們之間有什么區別,什么時候我應該使用一個而不是另一個?

我認為可以在這里找到一個區別: https : //github.com/testing-library/cypress-testing-library#differences-from-dom-testing-library

如果發現多個元素符合標准,find* 命令將失敗,這不是賽普拉斯內置命令的工作方式,而是為了與其他測試庫更緊密地兼容而提供的。

這不是contains()工作方式。 來自文檔: https : //docs.cypress.io/api/commands/contains.html#Single-Element

只返回第一個匹配的元素

contains()也適用於 首選項,例如contains()產生<button>元素,即使當更深的元素是例如<span>時它在樹中更高。 因此,如果您不將選擇器參數傳遞給命令,則它更喜歡<button>元素而不是更深的元素。 此命令的文檔中還有其他示例。


所以現在在我看來,賽普拉斯測試庫中的find*命令更類似於文檔中所說的其他測試庫的行為。 使用contains() ,您可能需要更多有關其工作原理的知識,以便您獲得所需的元素而不是其他一些元素,因為例如您不了解此首選項邏輯的工作原理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM