cypress 相关问题

赛普拉斯,一体化测试框架和断言库,包括自动等待,请求模拟和请求存根

在管道作业上运行 cypress 代码覆盖率

所以我决定将Sonarqube集成到一个项目中,现在我想向它发送我的cypress e2e测试的覆盖率报告。 我有一个带有 cypress e2e 测试的 Vite React 应用程序,并增加覆盖范围

回答 1 投票 0

Cypress 测试在节点 16 上无限挂起

我有一个cypress测试项目。我们最近将 cypress 迁移到 13.x 并相应更新了测试。但是当我尝试使用代理服务器 8080 运行一项特定测试时,测试无限挂起...

回答 1 投票 0

如何处理 iframe,从 for 循环内的对象传递数据

我正在尝试在 iframe 中键入一个值,而我尝试输入的值存储在我创建的对象中。当 cypress 尝试输入值时,我遇到一个错误,提示它只能......

回答 1 投票 0

如何在Cypress测试中从过滤行td中获取文本?

在我的测试中,我有一个表格,我正在按一些文本进行过滤。结果我得到了一个行数组。我的目标是从每行的某些单元格中获取文本(例如 td #3)。这是第一点...

回答 1 投票 0

如何从 cypress 中的(禁用)文件输入中取消选择文件?

我禁用了文件输入 (),并且我使用 selectFile('filepath', {force: true }) 选择了一个文件。这很好用。 但现在我想取消选择该文件: 我...

回答 1 投票 0

如何在 Cypress 12 中隐藏 fetch 和 XHR 日志?

我正在学习 Cypress 12,想禁用 fetch 和 XHR 的日志记录。在我的研究中,我发现“隐藏赛普拉斯测试运行程序上的 XHR 调用”,它指出了这个要点,但由于某种原因,它......

回答 2 投票 0

Cypress 希望元素包含一个字符串或另一个字符串

我正在尝试做一些 Cypress 断言来查看它是否包含一个或另一个字符串。它可以是英语或西班牙语,因此任何一种都应该通过测试。 cy.get(el).should('包含', '

回答 3 投票 0

如何正确调用将对象作为其他 cypress 辅助函数内部函数输入的 cypress 辅助函数

我有一个cypress助手功能 函数({ 参数1, 参数2, 参数3, 参数4, 参数5, 参数6, 参数7 }) { if (param1 === '是') { cy.get(this.elements.selector).eq(0).select(1) } 否则...

回答 1 投票 0

使用正则表达式断言存根函数的参数

我有一个存根方法,在赛普拉斯控制台中打印以下结构: myMethod('开始', 对象{5}) 我知道该对象有一个键,segmentB -> 当控制台记录它时...

回答 1 投票 0

我们如何从 Cypress 的文件夹中读取多个文件?

我有一个测试用例,它在系统默认的“下载”文件夹中下载文件,并且在动态时间我需要通过对最新文件应用过滤器来从文件夹中读取此文件。 有什么办法可以阅读吗

回答 3 投票 0

使用 Cypress,如何断言已使用包含给定文本字符串的参数调用函数?

当初始化 JSON 中缺少给定属性时,我需要验证开发控制台中是否显示给定的错误消息。 到目前为止,我已经设置了一个间谍来监视 win.console.error: 常量

回答 1 投票 0

Cypress 自定义 TypeScript 命令不是函数

我正在 TypeScript 中实现自定义 Cypress 命令: // 支持/commands.ts 常量登录 = () => { console.log('正在登录...'); }; Cypress.Commands.add('登录', 登录); 声明名称...

回答 5 投票 0

如何使用 Cypress 在 iFrame 中打字

我正在使用测试站点构建 Cypress E2E 测试框架。 我无法在 iFrame 文本区域内输入内容。 这是实际的 iFrame: https://the-internet.herokuapp.com/iframe 我可以开始了...

回答 1 投票 0

Cypress:cy.origin() 要求第一个参数是与 top 不同的域。 (用于AAD认证)

要访问所需的页面,我必须通过AAD身份验证。我准备的测试如下: 描述('xxxxxxxxxxxxxxx', () => { 之前(()=> { const 用户名 = Cyp...

回答 1 投票 0

如何从 Cypress 获取运行时环境变量?

我有 CI/CD (Circe CI) 工作,我在特定条件下将特定变量设置为 TRUE。我需要在我的赛普拉斯测试中接收这个变量 我尝试了这些,但这个变量总是未定义...

回答 1 投票 0

Playwright JS,如何拦截按钮点击时的HTTP调用

我是 Playwright 的新手,需要一些有关拦截 http 调用的帮助。 我有一个场景,点击按钮后,将收到 2 个请求 请求 1 -> baseurl/session/ 请求 2 -> 会话数据 我需要

回答 1 投票 0

Cypress 溢出时的滚动问题:自动

我正在测试一个包含 div 的网络应用程序 我正在测试一个包含 div 的网络应用程序 <div style="overflow: auto; max-height: 429px;" … 里面有一张大桌子。我看到桌子周围有滚动条。现在我希望 Cypress 单击表中的一个元素。如果该元素隐藏在某个地方,那就没问题。 Cypress 会自动滚动到那里。但如果该元素隐藏在右侧的某个位置,Cypress 将不会滚动到正确的位置,而是会抱怨: CypressError:10050ms后超时重试:cy.click()失败,因为该元素的中心从视图中隐藏:` 这是为什么呢?我能做什么? 我正在使用最新的 Cypress (13.6.2)。 我认为洛林·图森是正确的。请参阅文档中的示例 scrollIntoView。 cy.get('#scroll-horizontal button') .scrollIntoView() .should('be.visible') 如果滚动有动画,则需要.should('be.visible')。 我根据您的描述制作了一个最小的可重现示例,但它并没有失败。 styles - 使表格、行和第一列1000px强制第二列不可见。 <div style="overflow: auto; max-height: 429px;"> <table style="table-layout:fixed; width:1000px;"> <tbody> <tr style="width: 1000px"> <td id="wide-column" style="width: 1000px">Very wide column</td> <td><input type="radio" /></td> </tr> </tbody> </table> </div> 测试: cy.viewport(500,500) cy.visit('index.html') cy.get('input').click() 结果: 表格自动水平滚动。 如果我固定 cy.visit(),快照会显示滚动发生之前的表格。 应用程序中的某些内容阻止了滚动的发生,或者是固定位置元素覆盖了输入,无论滚动位置如何。 如果您无法找出阻止滚动的原因,最简单的方法是禁用可操作性。 cy.get('input').click({force: true}) 您可以在单击之前使用 scrollTo() 移动表格。 类似这样的东西(你必须计算距离) cy.get('table').scrollTo(500, 0, { ensureScrollable: false }) cy.get('table tr:nth-child(3)').find('input') .should('be.visible') .click() 首先,我要感谢大家的意见!虽然它们都不是解决方案(尽管 {force: true} 确实是一种解决方法,见上文),但它们都让我朝着有趣的方向思考并尝试许多不同的事情。所以我给了迄今为止所有的答案和评论“这个答案很有用”的赞成票。 例如,我尝试了 scrollIntoView(),尽管我知道它不相关,因为 Cypress 会自动在 click() 上滚动 – 只要您没有将 scrollBehavior(用于 click 或用于测试或全局)设置为 false 。令人惊讶的是,该元素随后位于视口中,但随后的 click() 无论如何都滚动到了一个糟糕的地方。 事实证明,由于某种原因,默认的 scrollBehavior(即 top)对此表中的该元素不起作用。有时它似乎滚动到表格中间的某个位置,有时(例如,如果我事先滚动到该元素)它看起来像水平滚动条覆盖了该元素。所以也许和它有关。然而,这对我有用: cy.get("#foo).click({ scrollBehavior: "center" })

回答 4 投票 0

赛普拉斯 Iframe 找不到 0.contentDocument

我正在尝试对需要上传用户的应用程序运行一些测试。我们使用 usecsv 来处理页面 iframe 中上传的文档。当尝试使用多种不同的方法时...

回答 1 投票 0

Cypress-如何处理在 url 中传递凭据(用户名:密码)后再次出现的窗口弹出身份验证?

在 cypress 中,我们通过使用正确的授权标头来处理基本的弹出身份验证,即根据 cypress 文档在 url 中提供用户名和密码 cy.visit('https://用户名...

回答 1 投票 0

Cypress 中如何处理淡入淡出过渡?

我有一个带有“.fade”类的弹出窗口 它具有以下 CSS 属性: 。褪色 { 过渡:op... 我有一个带有“.fade”类的弹出窗口 <div class="modal fade employee" id="employeeFormModal" /> 它具有以下 CSS 属性: .fade { transition: opacity 0.15s linear; } .fade:not(.show) { opacity: 0; } 单击按钮时,弹出窗口将关闭。测试代码如下: cy.get('button[class*="save"]').click(); // cy.wait(5000) will do the trick //cy.get("#employeeFormModal").should("be.visible"); cy.get("#employeeFormModal").should("not.be.visible"); 问题是,即使我启用命令cy.get("#employeeFormModal").should("be.visible"),测试仍然通过,这表明#employeeFormModal同时可见和不可见。 我怀疑可能是由于淡入淡出过渡导致的时序问题,所以我在cy.wait()命令后面添加了click(),周期超过0.15秒。随后,.should("be.visible")断言失败,这正是我所期望的。 我的问题是: 有没有更好的方法来处理淡入淡出过渡效果,而不必等待特定的时间?(就像我所做的cy.wait(5000)) 同时可见和不可见仅在defaultCommandTimeout设置为0时适用。 但是每个命令都会重试设置的超时时间(默认 4 秒),所以 cy.get("#employeeFormModal").should("not.be.visible") 最初失败并重试整个链(get()和should())直到它通过。 要查看重试调用,请使用 should() 的回调版本 cy.get('button[class*="save"]').click(); cy.get("#employeeFormModal").should('be.visible'); cy.get("#employeeFormModal") .should($el => { const isVisible = $el.is(':visible') console.log(isVisible) // initially true, changes to false assert(!isVisible, 'Element is not visible') })

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.