我正在尝试使用puppeteer为我的Web应用程序创建E2E测试。 我想使用本地js文件在我的公共域中运行,所以我得到了完全的公开行为,只有js是本地构建的结果。
我知道如何拦截js捆绑包的请求,但查看request.respond文档,我无法退出,了解如何为本地驱动器提供不同的文件
答案 0 :(得分:0)
找到了一个解决方案,即使它不是最佳方法,它也可以工作。 它允许使用分支js捆绑包在CI构建中运行e2e测试。 截获js捆绑包请求后,我将其中止。 比我插入一个脚本标签,该标签具有相对于项目根目录的本地js包的路径-
page.on('request', async interceptedRequest => {
const url = interceptedRequest.url()
if (jsBundleRegex.test(url)) {
const fullLocalFileName = findMatchingBundleFileName(url)
await page.addScriptTag({
path: `./build/static/js/${fullLocalFileName}`
})
interceptedRequest.abort()
} else {
interceptedRequest.continue()
}