2

私は cucumber-js を使用して BDD を実行し、ヘッドレス Chrome と操り人形師を使用してブラウザーのテストを推進しようとしています。

cucumber node exampleとheadless chromeのドキュメントを使用すると、次のエラーが発生します。コードベース全体がここで利用可能です: github repo .

エラー:

  1. TypeError: this.browser.newPage は関数ではありません
  2. TypeError: this.browser.close は関数ではありません

// 機能/サポート/world.js

const puppeteer = require('puppeteer');
var {defineSupportCode} = require('cucumber');

function CustomWorld() {
  this.browser = puppeteer.launch();  
}

defineSupportCode(function({setWorldConstructor}) {
  setWorldConstructor(CustomWorld)
})

// features/step_definitions/hooks.js

const puppeteer = require('puppeteer');
var {defineSupportCode} = require('cucumber');

defineSupportCode(function({After}) {
  After(function() {
    return this.browser.close();
  });
});

// features/step_definitions/browser_steps.js

const puppeteer = require('puppeteer');
var { defineSupportCode } = require('cucumber');

defineSupportCode(function ({ Given, When, Then }) {
    Given('I am on the Cucumber.js GitHub repository', function (callback) {
        const page = this.browser.newPage();
        return page.goto('https://github.com/cucumber/cucumber-js/tree/master');
    });

    When('I click on {string}', function (string, callback) {
        // Write code here that turns the phrase above into concrete actions
        callback(null, 'pending');
    });

    Then('I should see {string}', function (string, callback) {
        // Write code here that turns the phrase above into concrete actions
        callback(null, 'pending');
    });
});
4

3 に答える 3