findByText
来自赛普拉斯测试库
https://testing-library.com/docs/cypress-testing-library/intro
并contains
带有“原生”赛普拉斯
我想知道它们之间有什么区别,什么时候应该使用另一个?
findByText
来自赛普拉斯测试库
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()
也适用于首选项,例如当更深的元素是 eg 时,即使它在树中更高,也会contains()
产生元素。因此,如果您不向命令传递选择器参数,则它更喜欢元素而不是更深的元素。该命令的文档中还有其他示例。<button>
<span>
<button>
所以现在在我看来,find*
赛普拉斯测试库中的命令更类似于文档中所说的其他测试库的行为。使用contains()
,您可能需要更多关于它如何工作的知识,以便获得您想要的元素而不是其他元素,因为例如您不了解此偏好逻辑的工作原理。