VS Code中Playwright TypeScript调试模式下测试异常求助
解决TypeError: finalResponse.status is not a function问题
核心修复步骤
- 调用组合方法
doAllTheThingsForMe时必须添加await关键字,等待异步操作完成后再获取实际响应对象 - 调用组合方法时务必传递Playwright的
request参数,确保内部的authorisation方法能正常发起API请求
问题根源分析
- 异步调用未等待:
doAllTheThingsForMe是异步函数,内部依赖authorisation这个异步API方法。如果调用时不加await,会直接返回一个Promise对象,而非API响应结果。此时对Promise调用status()方法,必然触发类型错误。 - 缺失关键参数:
authorisation方法需要Playwright的request实例来发送POST请求,组合方法如果没收到这个参数并传递下去,会导致请求初始化失败,后续处理自然出错。
正确调用示例
// 测试用例中的正确写法 test("组合API调用测试", async ({ request }) => { // 加await等待异步完成,同时传入request参数 const finalResponse = await doAllTheThingsForMe(request); // 现在可以正常调用status()方法做断言 expect(finalResponse.status()).toBe(200); });
内容的提问来源于stack exchange,提问作者MorkPork
相关产品推荐
相关产品推荐

