如何使用puppeteer服务本地文件而不是实际资源?

时间:2018-10-13 17:36:36

标签: javascript continuous-integration puppeteer e2e-testing

我正在尝试使用puppeteer为我的Web应用程序创建E2E测试。 我想使用本地js文件在我的公共域中运行,所以我得到了完全的公开行为,只有js是本地构建的结果。

我知道如何拦截js捆绑包的请求,但查看request.respond文档,我无法退出,了解如何为本地驱动器提供不同的文件

1 个答案:

答案 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()
      }