小编use*_*029的帖子

Cypress 装置 - 无法读取未定义的属性(读取“数据”)

我正在尝试使用固定装置来保存不同测试的数据,特别是用户凭据。这是代码的示例。当进行第二次测试时,我得到了'Cannot read properties of undefined (reading 'data')'

有什么想法以及如何解决这个问题吗?这是错误的吗?

before(function () {
    cy.fixture('credentials').then(function (data) {
        this.data = data;
    })
})

    it('Login correct', () => {
        cy.visit('/')
        loginPage.signIn(this.data.admin.username,this.data.admin.password)
        cy.wait(5000)
        // assertion
        cy.contains('Dashboard').should('be.visible')
    })
Run Code Online (Sandbox Code Playgroud)

这是我的credentials.json文件:

{
  "admin": {
    "username": "*****",
    "password": "*****"
  }
}
Run Code Online (Sandbox Code Playgroud)

fixtures cypress

6
推荐指数
2
解决办法
3万
查看次数

我如何在 cypress 中等待,直到收到服务器的响应

我对我的服务器进行了调用(是对 ibm watson 的调用)进行一些操作,如果一切正常,则返回 200 响应。

这个调用的时间超过 5000ms,cypress 可以等待。我需要等到服务器返回响应,然后我知道我的反应应用程序中会出现一个弹出窗口。

这是我从后端对 Watson 的调用:

const launchWatsonTest = (watsonData) => {     
  const data = {
    withCredentials: true,
    mode: 'cors',
     headers: {
      'x-access-token': watsonData.token,      
    }, 
    params: {
      topicId: watsonData.corpusNameId,
      workspaceId: watsonData.corpusArea
    }
  };      
  return clienteAxios.post(`test-watson`, watsonData, data);  
};
Run Code Online (Sandbox Code Playgroud)

我该如何等待才能继续测试?

我对 cypress 进行了这个测试:

  describe("E2E CognitiveTool", function() {
    it("should crear respuesta simple sin problemas", function() {
      cy.visit("http://localhost:3000");
      cy.contains('[data-cy="topicName"]', 'CA2');   
      cy.get('[data-cy="accederResponsesCA2"]').click();
      cy.get('[data-cy="crearResponse"]').should('exist')
        .click();
      cy.get('input[name="description"]')
        .type('Simple Cypres Response');      
      cy.get('[name="typeResponse"]').first().check({force:true});
      cy.get('[name="lateral_W"]').first().check({force:true});
      cy.get('[name="rolViews"]').first().check({force:true});
      cy.get('[name="workLoadLevel"]').first().check({force:true});
      cy.get('[data-cy="continuar"]').click();
      cy.get('input[id=0]')
        .type('hola');
      cy.get('input[id=1]')
        .type('adios');
      cy.get('input[id=2]') …
Run Code Online (Sandbox Code Playgroud)

react-redux cypress cypress-intercept

0
推荐指数
1
解决办法
883
查看次数

Cypress 按事件类型过滤日志

这是我的问题:我有一个大表单,我想在其中执行 e2e 测试。当用户更改其字段中的值时,此表单会填充 URL 查询参数。

当我使用 Cypress 来检查它时,每次在表单中输入内容时,它都会生成大量日志(例如(新 URL)见下文),使得测试难以阅读。

http://localhost:3000/demande-immersion?email=&firstName=Archib&lastName=&phone=&financiaryHelp=&emergencyContact=&emergencyContactPhone=&birthdate=&agencyDepartment=86&siret=&businessName=&businessAdvantages=&etFirstName=&etLastName=&etJob=&etPhone=&etEmail=&erFirstName=&erLastName=&erPhone=&erEmail=&immersionAddress=&agencyId=1411b4b7-a7a8-4d69-92ac-1eca1ac75c50&immersionActivities=&immersionSkills=&sanitaryPreventionDescription=&workConditions=&dateStart=2023-04-27&dateEnd=2023-04-28&schedule=%7B%22totalHours%22%3A14%2C%22workedDays%22%3A2%2C%22isSimple%22%3Atrue%2C%22selectedIndex%22%3A0%2C%22complexSchedule%22%3A%5B%7B%22date%22%3A%222023-04-27T00%3A00%3A00.000Z%22%2C%22timePeriods%22%3A%5B%7B%22start%22%3A%2208%3A00%22%2C%22end%22%3A%2212%3A00%22%7D%2C%7B%22start%22%3A%2213%3A00%22%2C%22end%22%3A%2216%3A00%22%7D%5D%7D%2C%7B%22date%22%3A%222023-04-28T00%3A00%3A00.000Z%22%2C%22timePeriods%22%3A%5B%7B%22start%22%3A%2208%3A00%22%2C%22end%22%3A%2212%3A00%22%7D%2C%7B%22start%22%3A%2213%3A00%22%2C%22end%22%3A%2216%3A00%22%7D%5D%7D%5D%7D
Run Code Online (Sandbox Code Playgroud)

有没有办法过滤 Cypress 登录应用程序的事件(使用cypress open)?

cypress cypress-intercept

0
推荐指数
1
解决办法
389
查看次数

无法验证 Cypress 中的特殊字符串

我必须使用 Cypress 验证网页上不同元素上的特殊字符串。

\n

特殊字符串是:T!@$^()-_+, &_-=tt.\xc3\x98 {y}[a] \xc2\xa3 fi

\n

每当我尝试验证字符串时,我都会在 Cypress 中收到以下断言错误:

\n

AssertionError Timed out retrying after 4000ms: Expected to find content: \'T!@$^()-+, &-=tt.\xc3\x98 {y}[a] \xc2\xa3 fi\' within the element: <label> but never did.

\n

以下是屏幕截图:\n在此输入图像描述

\n

下面是代码块:

\n
    cy.visit(\'public/special-character.html\')\n    \n    cy.get(\'label\').contains(\'T!@$^()-_+, &_-=tt.\xc3\x98 {y}[a] \xc2\xa3 fi\');\n    cy.get(\'p\').contains(\'T!@$^()-_+, &_-=tt.\xc3\x98 {y}[a] \xc2\xa3 fi\');\n   \n  })\n
Run Code Online (Sandbox Code Playgroud)\n

还附上了一个示例 HTML 页面:

\n

\r\n
\r\n
    cy.visit(\'public/special-character.html\')\n    \n    cy.get(\'label\').contains(\'T!@$^()-_+, &_-=tt.\xc3\x98 {y}[a] \xc2\xa3 fi\');\n    cy.get(\'p\').contains(\'T!@$^()-_+, &_-=tt.\xc3\x98 {y}[a] \xc2\xa3 fi\');\n   \n  })\n
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n …

javascript contains cypress

0
推荐指数
1
解决办法
705
查看次数

npm 包 chalk 不适用于 Cypress

我想使用https://www.npmjs.com/package/chalk作为控制台日志。

现在如果我使用console.log它就可以了

console.log(chalk.blue("Hello World"))

但是当我用 cy.task 运行它时,它不会给出任何错误,但不会显示任何着色

cy.task('log', chalk.blue("Hello World"));它打印 Hello World 但不是蓝色

我究竟做错了什么?

javascript chalk cypress cypress-task

0
推荐指数
1
解决办法
207
查看次数