目标:我正在编写一个Puppeteer,它需要侦听某个响应,检查响应url是否具有某种格式,然后保存响应,以便以后可以使用正文中的值。
当前代码:假设我们有一个const teacherId。现在,我的代码如下所示:
await page.goto(`url/teacher-profile/${teacherId}`);
// eslint-disable-next-line jest/valid-expect-in-promise
const teacherPromise = page
.waitForResponse(
response =>
response.url().includes(`/teacher-profile/teachers/${teacherId}`) &&
response.status() === 200,
)
.then(res => res.json());
const teacher = await teacherPromise;的问题:这工作很棒..。找到第一个http响应。但我知道,我正在寻找的http响应将需要更长的时间。当我手动加载页面时,它总是网络选项卡中的第4-6响应。
我已经尝试过了:,我尝试过将teacherPromise更改为调用page.on('request', ...),但它仍然只捕捉到了第一个请求。我曾短暂地考虑过把承诺放在一个循环中,但这似乎很混乱。
如有任何建议请见谅!
发布于 2021-06-08 23:46:56
我不认为你只能通过解雇一只山羊和检查网址才能做到这一点。如果您想访问请求时间行(就像我们通常从网络选项卡中所做的那样),我相信您将需要页面跟踪,请查看:https://pptr.dev/#?product=Puppeteer&version=v10.0.0&show=api-pagetracing。
如果这不是你想要的,试着发布更多关于你的问题的信息,比如,一旦你打开页面,你会做出什么样的回应,也许是网络标签上的截图。
https://stackoverflow.com/questions/67895620
复制相似问题