AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / coding / 问题

问题[cypress](coding)

Martin Hope
unlisted
Asked: 2024-12-25 00:27:15 +0800 CST

Cypress 和 Cucumber:Commands.js 函数在步骤定义中不起作用

  • 5

我在 command.js 中创建的函数在 Cucumber 步骤定义中不起作用。然而,另一个带有简单返回值的函数在同一个步骤定义中起作用。

命令.js

Cypress.Commands.add('excelData', async () => {

    const ExcelJs = require('exceljs')

    var columnArray = [];

    var workbook = new ExcelJs.Workbook()
    await workbook.xlsx.readFile('E:/Automations/Cypress/FrameworkToCucumberSpecFlow/cypress/downloads/exceldata.xlsx')
    var worksheet = workbook.getWorksheet('sampledatab')

    worksheet.eachRow((row) => {
        row.eachCell((cell) => {
            columnArray.push(cell.value)
        })
    })

    columnArray.splice(0, 1) 

    return cy.wrap(columnArray)

})

Cypress.Commands.add('TestCommandsJS', () => {
    return 'TestCommandsJS works'
})

步骤定义

When('I compare that list with the Excel specification sheet list', () => {

    cy.excelData().then(data => { //this does not work
        cy.log(data)
    })

    cy.TestCommandsJS().then(data => { //this work fine
        cy.log(data)
    })

})

任何帮助均感激不尽。

cypress
  • 1 个回答
  • 25 Views
Martin Hope
Juho Rutila
Asked: 2024-11-22 22:23:24 +0800 CST

cypress 拦截除 baseUrl 调用之外的所有内容

  • 7

我有一个正在运行的单页应用程序http://localhost:3001,并且我已经进行了这样的设置baseUrl。

现在,我想拦截所有外部调用,也就是那些去往其他地方的调用localhost:3001。如何在 Cypress 中编写这种单一拦截?或者,从设计角度来看,我是否以某种“错误”的方式执行此操作?

我尝试过以下拦截,但它们都导致拦截http://localhost:3001/_nuxt文件等。

    cy.intercept("**!(localhost:3001)*", (req) => {
    cy.intercept("**!(localhost:3001)**", (req) => {
    cy.intercept(/^((?!http:\/\/localhost:3001).+)$/, (req) => {
    cy.intercept({ url: /^((?!.*localhost:3001).+)$/ }, (req) => {

奇怪的是,正则表达式/^((?!.*localhost:3001).+)$/是正确的。但它与 localhost 文件不匹配。

/^((?!.*localhost:3001).+)$/.exec("http://localhost:3001/_nuxt/components/Component.vue") => null

as it should be, and then

/^((?!.*localhost:3001).+)$/.exec("https://www.example.com")
(2) ['https://www.example.com', 'https://www.example.com', index: 0, input: 'https://www.example.com', groups: undefined]

那么,Cypressintercept所做的事情是否不仅仅是一个简单的正则表达式执行,还是我在这里遗漏了一些明显的东西?

cypress
  • 3 个回答
  • 51 Views
Martin Hope
Jessa Brandy
Asked: 2024-11-22 17:27:52 +0800 CST

Cypress - 如何仅单击包含“chevron_right”的按钮

  • 7

此按钮有两种状态:禁用时为“chevron_right”。启用时为“expand_more”。

其默认状态为“chevron_right”

以下代码将在第一次单击按钮时单击。但是一旦启用它,就会出现错误,提示找不到“chevron_right”。有人知道我做错了什么吗?

cy.get('#TreeView mat-nested-tree-node').find('button').first().then(button => {
    if (cy.wrap(button).contains('chevron_right')) {
        cy.wrap(button).click()
                
    } else{
        cy.log("Do nothing")
    }
})

页面上有多个按钮具有这两种状态,因此我无法只搜索其中的一个实例。

cypress
  • 1 个回答
  • 41 Views
Martin Hope
KiritoLyn
Asked: 2024-09-18 13:59:16 +0800 CST

向 cypress 自定义命令添加多个 it() 函数

  • 5

是否可以在自定义命令中添加多个it()函数?这些函数是我们运行的最常见任务,并且基于旅程。我希望有一个自定义命令,它将包含所有这三个it()函数及其相关内容

it('add a new pet', function () {
  cy.createPet(param1, param2)
})

it('give pet attributes', function () {
  cy.setPetAttributes(param3)
})

it('set owner and delivery date for pet', function () {
  cy.setOwnerAndDeliveryDate(param4, param5)
})
cypress
  • 1 个回答
  • 36 Views
Martin Hope
JavaJd
Asked: 2023-12-05 03:59:52 +0800 CST

无法引用 cypress 间谍上的 callCount

  • 5

基本上,在我们的内部系统中,我们有一个订单页面,有人填写,然后点击“保存”将其“发布”到数据库。然后显示已发布的页面并发送综合浏览量 POST。

我尝试遵循以下示例 -->

cy.intercept('POST', '/api/order/').as('orderPublished');
cy.intercept('POST', '/api/user/pageview', cy.spy().as('postSpy');
cy.wait('@orderPublished').then((capture) => {
    cy.log('pageViewPostCount --> ', cy.get('@postSpy').its('callCount'));
    });

然而,我没有得到一个计数,而是在日志中得到一个窗口对象 --> 柏树日志输出

我试图找出两件事:

  1. 我是否为返回的拦截对象正确创建了间谍?
  2. 如何获取别名的调用计数值的路径?

我查看了 Cypress 的文档,它展示了如何“监视”易于创建的对象或易于引用的方法,但我没有看到有关如何执行我正在尝试的操作的示例。我看过一两篇文章提到 @ 对 cy.get 不起作用,但在其他文章中人们说它有效。显然,我通过日志得到了一些东西,它出现了窗口对象,所以不确定如何继续。

我已经排除了多行代码,但传统的 cy.intercept().as(aliasName) 与 cy.wait(aliasName) 相结合对此不起作用。

cypress
  • 1 个回答
  • 19 Views
Martin Hope
machineghost
Asked: 2023-11-27 01:46:19 +0800 CST

Cypress:断言失败时如何暂停?

  • 6

这看起来非常基础,我不好意思问 Stack Overflow,但我发誓我先尝试过谷歌搜索并查看 Cypress 文档!

简单的问题:Cypress 有断言 ( cy.should) 和一种暂停测试运行程序的方法 ( cy.pause) ...有什么方法可以连接这两者,这样如果 ashould失败,测试运行程序就会暂停?

我知道我能做到:

cy.should(whatever)
  .pause();

...但每次都会暂停。我只想在失败时暂停should。

PS 你可能会想:

try {
  cy.should(whatever)
} catch (err) {
  cy.pause();
}

会起作用...但事实并非如此,因为(就像赛普拉斯中的所有内容一样)实际抛出的错误不会在线上发生should...它会在稍后发生(当它无法被捕获时)。

同样,我尝试这样做:

cy.on('uncaught:exception', () => {
  cy.pause();
});
cy.should(whatever);

但它不起作用,大概是因为当使用 捕获错误时cy.on,已经来不及暂停了。

cypress
  • 2 个回答
  • 32 Views
Martin Hope
KiritoLyn
Asked: 2023-11-08 02:24:39 +0800 CST

在Cypress中将index.html文件设置为baseUrl

  • 7

是否可以使用文件(index.html)的路径设置baseUrl?

我的根 Cypress 项目中有一个src文件夹,其中包含index.html我正在测试的文件夹。

在我的cypress.config.js:

module.exports = defineConfig({
  e2e: {
    baseUrl: 'C:/cypress-project-name/src/index.html',
  },
})

但赛普拉斯给出了一个Expected e2e.baseUrl to be a fully qualified URL (starting with http:// or https://).错误

添加 http:// 也不起作用

cypress
  • 1 个回答
  • 31 Views
Martin Hope
aldrine00
Asked: 2023-09-19 22:57:09 +0800 CST

与辅助域上的元素交互时出现 cy.origin 错误

  • 5

我已经遇到这个问题很长时间了,不确定我需要做什么才能使它工作: 在此输入图像描述

在此输入图像描述

我使用的是赛普拉斯版本 12.17.2

cypress
  • 1 个回答
  • 21 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve