【问题标题】:Puppeteer - Cucumber - Use one browser for the testsPuppeteer - Cucumber - 使用一个浏览器进行测试
【发布时间】:2019-09-09 23:00:59
【问题描述】:

我正在使用 Puppeteer 和 Cucumber 在我的网络应用程序上进行 E2E 测试。

在每个功能的每个“steps.js”文件中,我在 before 方法中有这个:

Before(async function() {
  this.browser = await puppeteer.launch({ headless: false });
  setDefaultTimeout(60 * 1000);
  this.page = await this.browser.newPage();
  await this.page.emulate(GalaxyS5);
  await this.page.goto(URL);
});

问题是当我像这样通过cucumber-js 运行它时:.\node_modules\.bin\cucumber-js test\e2e\features,最终发生的是我打开了 3 个 Chromium 浏览器。然后其中 2 个转到我指定的 URL,最后一个只是一个空白页。

打开所有浏览器后,URL 被重定向的 2 个位置中的 1 个也开始执行测试。

似乎每个新场景都会打开一个新的浏览器窗口,这并不好,因为我最终会得到很多浏览器窗口。有没有办法指定 Puppeteer 仅使用一个浏览器进行测试或至少基于每个功能文件?

我的项目层次结构是这样的:

e2e/
- features/
    - feature1/
      - feature1.feature
      - steps.js (given, when, then, etc.)
    - feature2/
  - world.js

【问题讨论】:

    标签: javascript cucumber puppeteer cucumberjs


    【解决方案1】:

    您是否尝试过添加 After:

    After(async function() {
        // Teardown browser
        if (this.browser) {
           await this.browser.close();
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多