API 响应后无法收到警报

问题描述 投票:0回答:1

我试图获取警报来断言文本,但问题是,当执行 cy.get(.alert) 命令时,由于某种原因,警报不再可见,即使它在页面上显示了几个小时秒,以及 cy.get(.alert) 之后

跑步者: 在 cy.wait enter image description here 在 cy.get('.alert') enter image description here 在 cy.get('.alert') 之后 enter image description here 超文本标记语言 enter image description here

我的代码:


   cy.intercept('POST', Cypress.env('backdev3URL')+'/bap/one_sst_bap/create').as('createResponse')
    cy.readFile('cypress/fixtures/BAPdata.json').then(BAPdata => {
        cy.readFile('cypress/fixtures/PurchaseData.json').then(PurchaseData => {
            
            cy.wait('@tableRequest')
           
            cy.get('#subcontractors_datatable tbody').find('tr td:nth-child(1)').each((row,index) => {
                if(row.text().includes("ABJ MENUISERIE")){
                    cy.get('#subcontractors_datatable tbody tr').eq(index).find('td:nth-child(2)').then(Nb => {
                        BAPdata.BAPnumber = Nb.text()
                        cy.writeFile('cypress/fixtures/BAPdata.json', BAPdata)
                    })
                    cy.get('#subcontractors_datatable tbody tr').eq(index).contains('button', 'BAP').click()   
                }
            })
            cy.wait('@createResponse').then(() => {
                cy.get('.alert').should('contain',
                'Le BAP N°'+PurchaseData.BDCid+year+month+day+' pour le sous traitant avec ID '+PurchaseData.BDCid+' a été créé avec succés')
            })
          
            var date = PurchaseData.BDCdate.split(' ')[0].replace(/\//g, ' ')
            var day = date.split(' ')[0]+'1'
            var month = date.split(' ')[1]
            var year = date.split(' ')[2].replace(/20/, '')
            const creationDate = require('dayjs')

            BAPdata.BAPid = Number(BAPdata.lastBAPid)+Number(1)  
            BAPdata.SstBAPnumber = PurchaseData.SSTid+year+month+day
            BAPdata.BAPdate = creationDate().format('DD/MM/YYYY')

            cy.writeFile('cypress/fixtures/BAPdata.json', BAPdata)


        })
    })
                  

谢谢!

cypress alert fixtures web-api-testing
1个回答
2
投票

断言失败,因为警报中显示的数据存在差异

  • PurchaseData.BDCid
    在灯具中为
    642705
    ,但在警报中为
    20577

  • PurchaseData.BDCid+year+month+day
    有一些未定义的值

您可能只需检查字符串的一部分,以确保警报发生并且是正确的。

cy.get('.alert')
  .should('contain', 'pour le sous traitant avec ID')  // enough to identify 

但是如果你想用实际数据进行测试,你应该拦截 POST 请求并使用固定装置中相同的值进行存根

PurchaseData.json

还要在

cy.wait(1000)
之前除掉
cy.get('.alert')

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