Using object composition instead of class inheritance for page objects

This commit is contained in:
witzig 2017-05-10 16:18:35 +02:00
parent f106cd2850
commit c3e9781dc4
6 changed files with 60 additions and 80 deletions

View file

@ -1,11 +1,15 @@
'use strict';
const Page = require('./page');
const page = require('./page');
class Flash extends Page {
module.exports = driver => Object.assign(page(driver), {
elementToWaitFor: 'alert',
elements: {
alert: 'div.alert:not(.js-warning)'
},
getText() {
return this.element('alert').getText();
}
},
clear() {
return this.driver.executeScript(`
var elements = document.getElementsByClassName('alert');
@ -14,11 +18,4 @@ class Flash extends Page {
}
`);
}
}
module.exports = driver => new Flash(driver, {
elementToWaitFor: 'alert',
elements: {
alert: 'div.alert:not(.js-warning)'
}
});