5

findByText来自赛普拉斯测试库 https://testing-library.com/docs/cypress-testing-library/intro

contains带有“原生”赛普拉斯

我想知道它们之间有什么区别,什么时候应该使用另一个?

4

1 回答 1

3

我认为可以在这里找到一个区别: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(),您可能需要更多关于它如何工作的知识,以便获得您想要的元素而不是其他元素,因为例如您不了解此偏好逻辑的工作原理。

于 2020-09-27T11:51:40.383 回答