私はあなたができるとは思わない。AfterFeatures では、cucumber プロセスは既に終了しているため、これはそれを参照しません。
ただし、ページにアクセスすることだけが必要な場合は、ブラウザーをキュウリの外部に登録して、AfterFeatures フックから引き続きアクセスできるようにすることができます。AngularJS + Protractor を使用している場合、Protractor がブラウザーを処理するため、AfterFeatures フックで引き続きアクセスできます。同じ原理でしょう。これは、次の方法で実行できます。
hooks.js
var myHooks = function () {
this.registerHandler('AfterFeatures', function (event, callback) {
console.log('----- AfterFeatures hook');
// This will not work as the World is no longer valid after the features
// outside cucumber
//this.visit('/quit', callback);
// But the browser is now handled by Protractor so you can do this
browser.get('/quit').then(callback);
});
};
module.exports = myHooks;
world.js
module.exports = function() {
this.World = function World(callback) {
this.visit = function(url) {
console.log('visit ' + url);
return browser.get(url);
};
callback();
};
}
cucumber-js GitHub リポジトリの AfterFeatures の例は、以前に World に登録したドライバーにアクセスできるように見えるため、少し誤解を招く可能性があります。しかし、純粋な cucumber-js のみを使用している場合、私はその動作を見たことがありません。
ちなみに、registerHandler の代わりにこれだけでも使えます。
this.AfterFeatures(function (event, callback) {
browser.get('/quit').then(callback);
});
お役に立てれば。