Cypress获取API响应参数的文本



我想从位于API响应中的URL获得数字。为此,我得到了URL,但我不知道如何将其转换为文本以提取数字。

cy.intercept('GET', 'http://viasphere.localhost/documents/page_elements/client/**',).as('response')
goTo.plusClientsButton()
cy.wait('@response', {timeout: 10000})
cy.get('@response').then( xhr => {
const link = xhr.request.headers.referer
cy.log(link)

link的值为:http://viasphere.localhost/documents/page_elements/client/19537

显然const link = xhr.request.headers.referer.text()不工作…

您必须添加.replace(/^D+/g, '')才能从url中提取数字。

cy.intercept(
'GET',
'http://viasphere.localhost/documents/page_elements/client/**'
).as('response')
goTo.plusClientsButton()
cy.wait('@response', {timeout: 10000})
cy.get('@response').then((xhr) => {
const client_id = xhr.request.headers.referer.replace(/^D+/g, '')
cy.log(client_id) //prints 19537
})

除了提供的.then()Alapan Das之外,您还可以使用cypress命令执行相同的操作。

cy.intercept('GET', 'http://viasphere.localhost/documents/page_elements/client/**',).as('response')
goTo.plusClientsButton()
cy.wait('@response', {timeout: 10000})
// can access request.headers.referer from .wait()
.its('request.headers.referer')
// returns 'http://viasphere.localhost/documents/page_elements/client/'
.invoke('replace', /^D+/g, '')
// now you have the link and can print it
.then(cy.log)

最新更新