**Status: waiting for reviews for [[ https://gerrit.wikimedia.org/r/#/c/412956/ | 412956 ]]. See T185094#4037614 for details.**
---
[[ http://webdriver.io/guide/testrunner/pageobjects.html | Page object documentation ]] now has slightly different implementation.
`.babelrc`
```lang=js
{
"presets": [ "es2015" ]
}
```
`package.json`
```lang=js
...
"devDependencies": {
"babel-core": "^6.26.0",
"babel-loader": "^7.1.3",
"babel-preset-es2015": "^6.24.1",
"babel-register": "^6.26.0",
...
}
...
```
`tests/selenium/.eslintrc.json`
```lang=js
...
"parserOptions": {
"sourceType": "module"
},
...
```
`tests/selenium/pageobjects/page.js`
Before:
```lang=js
class Page {
...
}
module.exports = Page;
```
After
```lang=js
export default class Page {
...
}
```
`tests/selenium/pageobjects/userlogin.page.js`
Before:
```lang=js
const Page = require( './page' );
class UserLoginPage extends Page {
...
}
module.exports = new UserLoginPage();
```
After
```lang=js
import Page from './page';
class UserLoginPage extends Page {
...
}
export default new UserLoginPage();
```
`tests/selenium/specs/user.js`
Before:
```lang=js
...
const assert = require( 'assert' ),
CreateAccountPage = require( '../pageobjects/createaccount.page' ),
PreferencesPage = require( '../pageobjects/preferences.page' ),
UserLoginPage = require( '../pageobjects/userlogin.page' );
...
```
After
```lang=js
...
const assert = require( 'assert' );
import CreateAccountPage from '../pageobjects/createaccount.page';
import PreferencesPage from '../pageobjects/preferences.page';
import UserLoginPage from '../pageobjects/userlogin.page';
...
```
`tests/selenium/wdio.conf.js`
```lang=js
...
mochaOpts: {
compilers: [ 'js:babel-register' ],
...
```