获取API响应参数的文本

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

我想从 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)

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

显然,

const link = xhr.request.headers.referer.text()
不起作用。

api cypress
2个回答
0
投票

您必须添加

.replace(/^\D+/g, '')
才能从网址中提取数字。

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
})

0
投票

除了 Alapan Das 提供的

.then()
之外,您还可以使用 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)
© www.soinside.com 2019 - 2024. All rights reserved.