English 中文(简体)
Handwright JS , how to Jackson on HTTP calls on button Point
原标题:Playwright JS , how to intercept on HTTP calls on button click

我是新来的,在拦截网上电话方面需要一些帮助。

I have scenario, on clicking on button , will get 2 requests
request 1 -> baseurl/session/
request 2 -> sessiondata

我需要核实申请1是否达到200份答复,而且从请求2来看,我需要核实要求的有效载荷。 我可以通过:

cy.intercept(request1).as(req1)
cy.intecpt(requrest2).as (req2)
cy.get(button).click()
cy.get(req1) .its( response.statusCode )
      .should( eq , 200);
cy.get(req2).its("request.body")
        .then((body) => {
console.log(body);
});

我在“Emwright”中竭力实现同样的目标,与等待重新处理和安放方案混为一谈;等待答复。


由于作出了回应,但我被请求的机构是:[obj][obj], 请求2.header is un definition, What am本人在此失踪?

const requestPromise1 = this.page.waitForResponse((res) => 
  res.url().includes("url1")&& res.status() === 202);
const requestPromise2 = this.page.waitForResponse((res) => 
  res.url().includes("url2")&& res.status() === 204);

await page.locator("<button locator>").click();
                                                                                
const request1 = await requestPromise1;
const request2 = await requestPromise2;

expect(request1.status()).toBe(202);
expect(request2.status()).toBe(204);

console.log("headerheader"+request2.header)
console.log("request2"+await request2.request());                       

Note: Url1 is POST , Url2 is PATCH with 204 response from which I need to get payload

问题回答

这里是“玩弄你在使用Cypress时所做的完美的东西”的一种方式。

这里使用的是waitForResponse方法,以拦截这些请求,点击btn,核对状况,最后用res.json()抽取请求机构。

如先前的答复所述,确保你不使用<代码>await<>/code>。 www.un.org/Depts/DGACM/index_french.htm

test("intercept http requests on click", async ({ page }) => {
  // Intercept requests
  const responsePromise1 = page.waitForResponse("/endpoint1"); // no await
  const responsePromise2 = page.waitForResponse("/endpoint2"); // no await

  // Click your button
  await page.locator("<button locator>").click();

  // Await those intercepted requests now
  const response1 = await responsePromise1;
  const response2 = await responsePromise2;

  // Check requests status
  expect(response1.status()).toBe(200);
  expect(response2.status()).toBe(200);

  // Get the request s body and print it
  const data = await response2.json();
  console.log(data);
});




相关问题
Cypress 在自定义命令上无法工作。

我在support/header.js下创建一个新文件,用于重复检查头文件,我还将它导入到e2e.js中。 header.js Cypress.Commands.add(checkHeader, () => {     //* FAVICON     it(Check Favicon 1,(...

value of hidden element is not changed

I have the following checkbox element <div _ngcontent-qcu-c225="" class="checkbox-section terms-of-sale"><div _ngcontent-qcu-c225="" class="checkbox-wrapper&...

热门标签