问题标签 [cypress-testing-library]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
949 浏览

reactjs - Cypress + Dom 测试库:getByText 找不到输入的值

我正在使用 Cypress 和Cypress 测试库来测试我的 React 应用程序。

我有一个输入名称('Steve')作为它的值,我试图用柏树找到它,如下所示:

但是赛普拉斯没有找到这个元素并且测试失败了。如果我将输入更改为 div:

它有效(但我需要呈现输入)。赛普拉斯(和 Dom 测试库)如何找到输入的值?

0 投票
2 回答
1564 浏览

javascript - 如何使用 Cypress 和 @testing-library/cypress 测试复选框切换,

我正在尝试使用 cypress 测试库编写测试手风琴的切换动作。下面是手风琴的标记,它正在使用复选框 hack 进行切换:

和测试如下:

问题cy.findByRole({ role: "checkbox" });总是返回未定义,我该如何解决这个问题或以正确的方式编写上面的测试。

谢谢

0 投票
1 回答
1390 浏览

javascript - 赛普拉斯:`cy.contains` 和 `cy.contains` 有什么区别?查找文本`

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

contains带有“原生”赛普拉斯

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

0 投票
2 回答
2168 浏览

cypress - 如何在赛普拉斯测试库的“findByTestId”函数中覆盖“data-testid”

我现有的大部分代码库只在少数地方使用“id”,“data-testId”属性存在。试过这段代码

但是,它仍然无法正常工作。

有没有办法在任何测试库函数中使用“id”值。

我的 HTML 代码类似于:

我想用这个代码点击那个元素:

0 投票
1 回答
29 浏览

reactjs - 当专注于它进行测试时,输入字段被隐藏在横幅后面

我正在使用 Cypress 为模态框内的表单编写集成测试,其特殊性在于它具有固定的高度、固定的页眉和固定的页脚,这意味着表单可以滚动并始终部分覆盖这些内容。

这在使用 Cypress 进行测试时被证明是有问题的,因为我查询输入数据的输入元素在我这样做时会进入模式的最顶部,这意味着它们会被顶部横幅覆盖并且无法与之交互。

我认为模式和表单的当前设置应该更改为更好的编码和更容易测试,但我想知道现在我是否可以在选择它们后将输入滚动到视图中。

在注释掉的代码中,您可以看到我希望的逻辑类型。我尝试了几种滚动、查询和触发事件的组合,但均无济于事。

0 投票
2 回答
511 浏览

cypress - 如何在 cypress 中循环和读取 JSON 数据

假设您有一个 JSON 文件,其中包含如下数据:

如何使用 cypress 阅读并使用 cypress 将名称一一打印?

0 投票
1 回答
30 浏览

cypress - 了解登录状态

我想使用 Cypress 来实现自动化。

我们的系统要求用户登录并执行某些操作。我遇到的问题是,当我创建不同的测试用例时,用户会被注销,我必须重新使用某些我不想使用的代码,因为这是不好的做法。

如何使用相同的状态,以便用户在整个会话中都登录并且测试用例将流动而无需为每个会话登录。

0 投票
0 回答
88 浏览

reactjs - 如何在赛普拉斯中单击多个按钮,具体次数?

我正在尝试编写一个测试,我需要检查博客列表是否按每个博客的喜欢的降序呈现。为此,我在 Cypress 中创建了 3 个模拟博客,并希望在测试它们是否按喜欢的降序排列之前给它们特定数量的喜欢 (3 - 1 - 2)。然而,下面的代码给出了 4 - 2 - 2 个赞,而不是预期的 3 - 1 - 2:

赛普拉斯中的错误输出如下所示: 赛普拉斯中上述代码的输出图像

0 投票
0 回答
53 浏览

javascript - 有没有办法在不通过柏树删除实际数据库的情况下重置 mongoDB?

我想以这样一种方式实现数据库的重置,当我通过测试运行程序执行所有规范文件时,数据库是在第一个规范文件之前创建的,并在每个规范文件之后发布数据库应该重置为其原始状态,这意味着数据由于执行相应的规范文件而在数据库中创建的应该被删除,并且在运行下一个规范文件之前,数据库应该回到执行第一个规范文件之前的状态。这应该发生在每个规范文件上,最后在最后一个规范文件 DB 应该被删除之后。目前,DB 的创建和删除分别在 before 和 after 钩子中按预期处理。将在钩子本身之前处理重置操作。但是如何按预期重置 Db 呢?

0 投票
0 回答
43 浏览

testing - 用 cypress 测试 d3js 的缩放

我正在测试用 d3.js 制作的图表。该图通过滚动放大。我想用柏树来触发滚动缩放,我做了这些尝试,但没有任何反应。