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();