我正在尝试为服务人员创建一些基本的回归测试,但无法在page.evaluate()方法内执行fetch()操作。
该测试包括检查是否已将文件添加到缓存,为此,我需要模拟一个请求:
const res = await page.evaluate( async (url) =>
{
var req = new Request(new URL(url));
return window.fetch(req).then(() => {
return "ok";
}).catch((error) => {
return "fail";
})
}, {url})
但是,每次我尝试发出该请求时,都会收到“失败”返回
发现一种解决方法是打开( page.goto(url))URL并返回“ / home”网站,因为它们位于可以使用的同一个域中,但这有点丑陋,我该如何执行提取?
URL是有效的,我在chrome的控制台上进行了测试,以便在我位于同一网站上时可以提取文件,并且该文件可以正常工作。此外,goto(fetch_url)可以工作,所以我不明白为什么提取不起作用。
我已经尝试过更改puppeteer和jest的版本,但得到的结果相同。
更新:
获取请求已到达服务器,并且服务器正在按预期方式回复
您对如何调试此问题有任何建议?