网站搜索

TypeScript/Cypress 全局枚举无需导入

我使用 Cypress 进行自定义命令和测试用例。

我想在一个文件中定义一些全局枚举,例如:

enum MyEnum{ A = "hello", B = "goodbye" }

现在我想在每个文件中 不 导入就使用这个枚举,如下所示:

Cypress.Commands.add('testCommand', () => { let myEnum = MyEnum.A; })

或 :

describe("example", () => { it("example", () => { let myEnum = MyEnum.A; }); });

这可能吗?

阅读更多 →

javascript - Cypress 似乎定位了错误的元素

在使用 cy.get() 根据 id 选择元素,然后使用 .type() 输入内容时,会输入到错误的元素中。这种情况在我编写的多项测试中偶尔发生。get 似乎选择了正确的元素,但 type 却在另一个元素上输入内容。

示例: 元素正确选择 值输入到错误的元素

我在这里尝试了很多方法。cy.get('#elementid').clear().type('new text') 是我过去使用的方法,但后来改成了 cy.get('#elementid').type('{selectall}new text')。新方法导致这个问题发生的频率少了很多,但仍然会发生。

示例截图中使用的完整命令是使用循环来生成元素 ID,但在不使用循环选择元素时也会出现此问题。

Cypress

阅读更多 →

json - Cypress 中相当于 Protractor 的 browser.executeScript() 函数的是什么?

我目前正在尝试将我的 Protractor 测试转换为 Cypress。尝试将 Protractor 的 browser.executeScript() 函数转换为 Cypress 总是让我遇到障碍。

例如,我有一个 Protractor 函数,看起来如下所示。这个函数点击按钮元素,以防 this.button.click() 不起作用。

this.button = element(by.id(button)); clickExactButton(): promise.Promise<void> { return browser.executeScript( "arguments[0].click();", this.button ); }

我如何制作一个 Cypress 版本的这个 clickExactButton() 函数?

我有另一个 Protractor

阅读更多 →

typescript - 为什么 Cypress 运行的是旧代码而不是更新后的代码?

我正在使用 Cypress(尝试过 8.0.0、8.7.0、7.7.0)编写一个填写表单的简单端到端测试。

昨天我将 .click() 更新为 .click({ multiple: true }),然后又删除了它。从那以后,无论我对测试做了什么修改,执行的代码都是旧的。

错误来自于点击,其 multiple: true

我的测试(未出现“multiple”):

const moment = require('moment'); const destinationElements = 'elem de

阅读更多 →

javascript - 在一个方法中使用多个页面对象的 Cypress JS

我一直在为在一个方法中使用多个页面对象的一些逻辑而苦恼,我找不到任何使用这种逻辑的想法,例如;

这些是我在名为 usersTable 的页面对象中的方法;

get rolesAndStatusMenu() { return cy.get("#menu- > .MuiPaper-root > .MuiMenu-list>li"); } get usersPartialRow() { return cy.get(".MuiTableBody-root>tr>

阅读更多 →

javascript - Cypress:我如何等待弹出窗口出现?

我有两个关于无指定时间出现的弹出窗口的问题:

  1. 当我在一段时间后打开网站时,页面中央会出现一个弹出窗口,其中包含我想要测试的表单,我如何在不知道它何时出现的情况下对该元素使用 cy.get()?

  2. 当我执行其他测试时,我如何异步等待表单元素出现以便关闭它(它有一个关闭按钮)

阅读更多 →

reactjs - React 微捆绑包 (Rollup) 自定义开发服务器配置的 Cypress 组件测试

我正在尝试为我们正在开发的新 React 仓库建立一个组件测试策略。

根据 Cypress 文档,没有关于如何使用像这样的自定义开发服务器配置组件测试的有用细节。

import { defineConfig } from 'cypress' export default defineConfig({ component: { devServer(cypressConfig) { // return dev server instance or a promise that resolves to // a dev server instance here }, }, })

我的 package.json 看起来像这样:

"source": "src/index.ts", "exports": { "require": "./di

阅读更多 →

typescript - cypress 在异步调用完成之前调用 after all 钩子

在我的测试中,我有异步函数调用

describe('a', () => { after(() => { console.log('after call'); }); it('a', () => { myAsyncFunction().then(() => { console.log('async call'); }); }); });

查看控制台,首先是after call

阅读更多 →

typescript - Cypress 测试覆盖未被检测

我一直在努力让端到端测试在 Next.JS 应用中获得测试覆盖率。

我已经创建了基础应用程序

yarn create next-app --typescript --eslint --experimental-app

然后我按照仪器文档操作。以下是我的设置:

  • package.json(仅限基本内容)
{ "scripts": { "cypress:e2e": "cypress open --e2e" }, "devDependencies": { "@babel/core": "^7.21.3", "@babel/preset-env": "^7.20.2", "@cypress/code-co

阅读更多 →

TypeScript 5.2.2 与 Cypress.js

我在项目中使用 TypeScript,并且在升级到 5.2.2 版本后,我无法运行我的 Cypress 端到端测试。以下是我的 tsconfig.json 文件内容:

"compilerOptions": { "experimentalDecorators": true, "emitDecoratorMetadata": true, "outDir": "./dist/", "sourceMap": true, "noImplicitAny": true,

阅读更多 →