首页 > 解决方案 > cypress 如何在 CRUD 测试中获取插入行的 ID?

问题描述

在@vue/cli 4.0.5 应用程序中使用 cypress("@vue/cli-plugin-e2e-cypress": "~4.2.0") 进行 CRUD 操作并添加新类别:

cy.get('#parent_id').select('1')


cy.get('section.submit_form_category')
    .get('button.submit_button_category')
    .click()  // by submitting new category was added on server

cy.url()
    .should('include', '/admin/categories/edit/')

cy.contains('Edit category')

cy.get('section.submit_form_category')
    .get('a.cancel_button_category')
    .click()


cy.url()
    .should('include', '/admin/categories')
cy.contains('Categories')  // opened listing of categories 

接下来我需要删除这一行,为此我需要获取上面创建的新类别的 ID。如果有办法做到吗?

谢谢!

标签: vuejs2cypress

解决方案


我发现了一个带有等待方法和解析响应 url 的决定,它必须类似于 /admin/categories/edit/52 :

cy.get('section.submit_form_category')
    .get('button.submit_button_category')
    .click() // by clicking on submit button form is validated and new categoty inserted

cy.wait(1000)

cy.url()
    .should('include', '/admin/categories/edit/') // newly inserted row must be redirected to the editor in edit mode with ID in url
    .then((response) => {
        var valuesArray = response.split('/admin/categories/edit/'); // get ID of newly inserted category
        if (valuesArray.length == 2) {
            let new_category_id = valuesArray[1]
            // alert('new_category_id::' + new_category_id)
        }
    })
cy.contains('Edit category')

这对我有用,但也许有更好的解决方案?


推荐阅读