问题标签 [cypress]

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 投票
4 回答
83010 浏览

javascript - 赛普拉斯获取 href 属性

我有一个测试用例,其中有一个在新选项卡中打开的链接。由于赛普拉斯不支持多个选项卡,我想获取该href链接的属性,然后在同一个选项卡中打开它。我正在尝试这样做,但由于某种原因它不起作用。

0 投票
2 回答
5287 浏览

angularjs - 如何使用赛普拉斯输入具有相同名称的多个输入实例

我必须使用 cypress 对 angularjs 应用程序进行端到端测试。

我有两个相同输入元素的实例。它们具有相同的 ng-model、类和名称。我们得到了由应用程序动态生成的唯一 ID,每次页面加载或在不同的机器上测试时,该 ID 都不相同。

作为下面的示例,有两个具有相同名称的输入元素,但我需要相同的文本出现在两个输入元素上。当我使用以下命令时,赛普拉斯抱怨两个同名实例。如何在具有相同名称的两个输入元素上键入相同的文本“Hello world”?

0 投票
5 回答
63851 浏览

angularjs - 使用柏树选择下拉列表项

我需要使用 cypress 测试 angularjs 应用程序的下拉列表。

我需要单击一个下拉列表并从下拉列表中选择或单击一个项目。我尝试如下,它适用于一个实例但不适用于其他时间,因为第二个 get() 方法中的 id 号随着其动态生成而不断变化。这不是 html 中带有选项的标准选择。

1)无论如何我可以在每个选项上设置一个唯一属性,然后选择所需的属性,或者我可以根据列表项的描述进行选择吗?我怎样才能做到这一点?

2) 以下是测试下拉列表的正确方法吗?我敢肯定还有比这更好的方法吗?

请任何人都可以帮助

DOM

0 投票
1 回答
899 浏览

cypress - 如何使 Cypress 访问在远程服务器上无头工作?

我有一个希望visit与赛普拉斯一起使用的网址。当我在 localhost、headless 或 Cypress GUI 上运行时 - 它可以工作。当我在远程服务器上运行时,GUI 可以工作,但 headless 不能。

这是测试:

创建的屏幕截图没有提供新信息,当我添加时,cy.wait(20000)我认为它没有等待。

我错过了什么,我怎样才能让这个测试在远程服务器上运行?

谢谢您的帮助 :)

0 投票
2 回答
6262 浏览

javascript - 在 cypress.io 中对动态文件运行测试

我正在尝试使用cypress来测试我构建的大型 Angular 应用程序。我的要求是我将一个期望文件加载到我的测试中,然后从这个期望文件中驱动测试。

到目前为止,我无法使用 、 的各种组合来实现它cy.readFile()cy.fixture()甚至axios无法通过 http 加载文件。

问题似乎是我不能在外面使用这些方法it(),如果我不能这样做,这意味着我不能遍历数据来创建它。我正在尝试做类似下面的事情......这在柏树中是否可能?我错过了一些明显的东西吗?

可以说我的期望是这样的:

我希望我的代码加载它并浏览各个页面:

在我看来,这似乎是一个非常明显的用例,所以我很困惑为什么它看起来如此困难:)

0 投票
4 回答
3892 浏览

node.js - 赛普拉斯 CLI 控制台输出不太可读

我正在无头地运行柏树测试,并希望控制台输出更具可读性。目前,我得到一个非常混乱的输出,如下所示。根据文档,它应该使用 Mocha SPEC 报告器布局。谁能告诉我我需要做什么才能使这个输出可读?

我在跑./node_modules/.bin/cypress run

0 投票
2 回答
1749 浏览

cypress - 赛普拉斯似乎停滞不前

我是柏树的新手,喜欢它的架构方式。但是,我似乎很早就遇到了一个问题,因为我正在尝试做一件非常简单的事情。

我的工作流程是:1)访问该站点 2)输入用户名和密码 3)在下一个屏幕上,输入一个数字并按提交,4)在下一个屏幕上,从下拉列表中选择一个值并按 Enter。5) 我进入了我网站的登录页面。

赛普拉斯在第 4 步之前工作得很好)。它似乎在第 5 步停止。测试运行程序突然停止,没有警告或错误,显示“哎呀,没有要运行的测试”。

从这里,当我单击“查看所有测试”按钮时,它会将我带到运行工具。在那里,我看到某些东西仍在后台运行的迹象。我尝试等待超过 10 分钟,但在单击“停止”操作之前没有任何反应。

我该如何调试?我可以通过任何日志等查看正在发生的事情吗?

我的网站甚至可能有问题,但没有任何日志信息,我无法继续进行。任何帮助表示赞赏。

为了提供更多背景信息,我不认为这是一个基于超时的问题,就好像情况一样,赛普拉斯确实向我报告了这一点并停止了。然后我增加了超时。

我的规格文件

谢谢。

0 投票
1 回答
2372 浏览

cypress - 如何测试选择在赛普拉斯中是否具有给定值?

我对赛普拉斯很陌生,我想编写一个简单的测试,在页面首次加载时将选择框(下拉)设置为特定状态。我不想将其设置为网站上的说明清楚显示的任何内容。我只想确保页面首次加载时选择框设置为应有的状态。我确信这很容易做到,我现在正在查看文档。到目前为止,我有:

我不知道如何确保所选项目具有文本“所有下沉类型”。

如何测试是否选择了特定值?

0 投票
1 回答
1947 浏览

testing - 使用 Cypress 执行拖放操作

大家早上好,我已经尝试了几天来执行一个在 Selenium 中执行拖放事件的 e2e 测试,经过几种方法解决这个问题,有人告诉我关于 Cypress,所以,我在这里尝试学习这些新东西。

问题是,如何使用 Cypress 从某个元素中获取 x 位置和 y 位置?在 GitHub 问题中,有人使用了此功能

但是,我不认为直接插入 x 和 y 坐标是最好的工作方式,所以,在 Selenium 中我得到了类似的东西

有没有办法编写类似的函数?

更新

对于那些对此感兴趣的人,cypress 运行普通的 ES6,所以你可以使用

检索 X 坐标和

检索 Y 坐标。

0 投票
1 回答
4644 浏览

javascript - 使用 Cypress 通过 Web 网关登录超时

我正在尝试为我的 webapp 执行一些测试,但要做到这一点,我必须登录到外部网站,为了做到这一点,我的 beforeEach 声明是:

预期的行为是,当我转到 localhost:3001 时,它会将我重定向到我设置登录凭据的另一个网站,并在单击登录后将我重定向到原始站点。

问题是在外部网站上我收到了这个

CypressError:等待“60000ms”加载远程页面后超时。

您的页面未在“60000 毫秒”内触发其“加载”事件。

您可以尝试增加“cypress.json”中的“pageLoadTimeout”值以等待更长时间。

在所有样式表和脚本下载完成之前,浏览器不会触发 'load' 事件。

当此“加载”事件发生时,赛普拉斯将继续运行命令。

因为此错误发生在“每个之前”挂钩期间,我们正在跳过当前套件中的剩余测试:“测试拖放,在 cypr 中......”

我试图增加 pageLoadTimeout 但它不起作用,你能给我一些关于这个问题的指导吗?