2 const Page = require( './page' );
4 class CreateAccountPage extends Page {
6 get username() { return browser.element( '#wpName2' ); }
7 get password() { return browser.element( '#wpPassword2' ); }
8 get confirmPassword() { return browser.element( '#wpRetype' ); }
9 get create() { return browser.element( '#wpCreateaccount' ); }
10 get heading() { return browser.element( '#firstHeading' ); }
13 super.open( 'Special:CreateAccount' );
16 createAccount( username, password ) {
18 this.username.setValue( username );
19 this.password.setValue( password );
20 this.confirmPassword.setValue( password );
24 apiCreateAccount( username, password ) {
25 const url = require( 'url' ), // https://nodejs.org/docs/latest/api/url.html
26 baseUrl = url.parse( browser.options.baseUrl ), // http://webdriver.io/guide/testrunner/browserobject.html
27 Bot = require( 'nodemw' ), // https://github.com/macbre/nodemw
29 protocol: baseUrl.protocol,
30 server: baseUrl.hostname,
36 return new Promise( ( resolve, reject ) => {
44 * @param {Error|null} err
45 * @param {Object} info Processed query result
46 * @param {Object} next More results?
47 * @param {Object} data Raw data
49 function ( err, info, next, data ) {
55 action: 'createaccount',
56 createreturnurl: browser.options.baseUrl,
57 createtoken: data.query.tokens.createaccounttoken,
77 module.exports = new CreateAccountPage();