@@ -138,7 +138,7 @@ export class Chromedriver extends events.EventEmitter {
138
138
} ) ;
139
139
this . log . debug (
140
140
`Found ${ util . pluralize ( 'executable' , executables . length , true ) } ` +
141
- `in '${ this . executableDir } '`
141
+ `in '${ this . executableDir } '` ,
142
142
) ;
143
143
const cds = (
144
144
await asyncmap ( executables , async ( executable ) => {
@@ -148,7 +148,7 @@ export class Chromedriver extends events.EventEmitter {
148
148
const logError = ( { message, stdout, stderr} ) => {
149
149
let errMsg =
150
150
`Cannot retrieve version number from '${ path . basename (
151
- executable
151
+ executable ,
152
152
) } ' Chromedriver binary. ` +
153
153
`Make sure it returns a valid version string in response to '--version' command line argument. ${ message } ` ;
154
154
if ( stdout ) {
@@ -219,7 +219,7 @@ export class Chromedriver extends events.EventEmitter {
219
219
this . log . debug (
220
220
` '${ cd . executable } ' (version '${ cd . version } ', minimum Chrome version '${
221
221
cd . minChromeVersion ? cd . minChromeVersion : 'Unknown'
222
- } ')`
222
+ } ')`,
223
223
) ;
224
224
}
225
225
return cds ;
@@ -313,7 +313,7 @@ export class Chromedriver extends events.EventEmitter {
313
313
const err = /** @type {Error } */ ( e ) ;
314
314
this . log . warn (
315
315
`Cannot store the updated chromedrivers mapping into '${ this . mappingPath } '. ` +
316
- `This may reduce the performance of further executions. Original error: ${ err . message } `
316
+ `This may reduce the performance of further executions. Original error: ${ err . message } ` ,
317
317
) ;
318
318
}
319
319
}
@@ -348,7 +348,7 @@ export class Chromedriver extends events.EventEmitter {
348
348
const retrievedMapping = await this . storageClient . retrieveMapping ( ) ;
349
349
this . log . debug (
350
350
'Got chromedrivers mapping from the storage: ' +
351
- _ . truncate ( JSON . stringify ( retrievedMapping , null , 2 ) , { length : 500 } )
351
+ _ . truncate ( JSON . stringify ( retrievedMapping , null , 2 ) , { length : 500 } ) ,
352
352
) ;
353
353
const driverKeys = await this . storageClient . syncDrivers ( {
354
354
minBrowserVersion : chromeVersion . major ,
@@ -388,7 +388,7 @@ export class Chromedriver extends events.EventEmitter {
388
388
`which ${
389
389
_ . size ( missingVersions ) === 1 ? 'is' : 'are'
390
390
} missing in the list of known versions: ` +
391
- JSON . stringify ( missingVersions )
391
+ JSON . stringify ( missingVersions ) ,
392
392
) ;
393
393
await this . updateDriversMapping ( Object . assign ( mapping , missingVersions ) ) ;
394
394
}
@@ -397,15 +397,15 @@ export class Chromedriver extends events.EventEmitter {
397
397
if ( _ . isEmpty ( cds ) ) {
398
398
this . log . errorAndThrow (
399
399
`There must be at least one Chromedriver executable available for use if ` +
400
- `'chromedriverDisableBuildCheck' capability is set to 'true'`
400
+ `'chromedriverDisableBuildCheck' capability is set to 'true'` ,
401
401
) ;
402
402
}
403
403
const { version, executable} = cds [ 0 ] ;
404
404
this . log . warn (
405
- `Chrome build check disabled. Using most recent Chromedriver version (${ version } , at '${ executable } ')`
405
+ `Chrome build check disabled. Using most recent Chromedriver version (${ version } , at '${ executable } ')` ,
406
406
) ;
407
407
this . log . warn (
408
- `If this is wrong, set 'chromedriverDisableBuildCheck' capability to 'false'`
408
+ `If this is wrong, set 'chromedriverDisableBuildCheck' capability to 'false'` ,
409
409
) ;
410
410
return executable ;
411
411
}
@@ -416,12 +416,12 @@ export class Chromedriver extends events.EventEmitter {
416
416
if ( _ . isEmpty ( cds ) ) {
417
417
this . log . errorAndThrow (
418
418
`There must be at least one Chromedriver executable available for use if ` +
419
- `the current Chrome version cannot be determined`
419
+ `the current Chrome version cannot be determined` ,
420
420
) ;
421
421
}
422
422
const { version, executable} = cds [ 0 ] ;
423
423
this . log . warn (
424
- `Unable to discover Chrome version. Using Chromedriver ${ version } at '${ executable } '`
424
+ `Unable to discover Chrome version. Using Chromedriver ${ version } at '${ executable } '` ,
425
425
) ;
426
426
return executable ;
427
427
}
@@ -446,7 +446,7 @@ export class Chromedriver extends events.EventEmitter {
446
446
} catch ( e ) {
447
447
const err = /** @type {Error } */ ( e ) ;
448
448
this . log . warn (
449
- `Cannot synchronize local chromedrivers with the remote storage: ${ err . message } `
449
+ `Cannot synchronize local chromedrivers with the remote storage: ${ err . message } ` ,
450
450
) ;
451
451
this . log . debug ( err . stack ) ;
452
452
}
@@ -456,18 +456,18 @@ export class Chromedriver extends events.EventEmitter {
456
456
'a possible workaround.' ;
457
457
throw new Error (
458
458
`No Chromedriver found that can automate Chrome '${ chromeVersion } '.` +
459
- ( this . storageClient ? '' : ` ${ autodownloadSuggestion } ` )
459
+ ( this . storageClient ? '' : ` ${ autodownloadSuggestion } ` ) ,
460
460
) ;
461
461
}
462
462
463
463
const binPath = matchingDrivers [ 0 ] . executable ;
464
464
this . log . debug (
465
465
`Found ${ util . pluralize ( 'executable' , matchingDrivers . length , true ) } ` +
466
- `capable of automating Chrome '${ chromeVersion } '.\nChoosing the most recent, '${ binPath } '.`
466
+ `capable of automating Chrome '${ chromeVersion } '.\nChoosing the most recent, '${ binPath } '.` ,
467
467
) ;
468
468
this . log . debug (
469
469
'If a specific version is required, specify it with the `chromedriverExecutable`' +
470
- 'desired capability.'
470
+ 'desired capability.' ,
471
471
) ;
472
472
return binPath ;
473
473
// eslint-disable-next-line no-constant-condition
@@ -492,7 +492,7 @@ export class Chromedriver extends events.EventEmitter {
492
492
if ( ! ( await fs . exists ( chromedriver ) ) ) {
493
493
throw new Error (
494
494
`Trying to use a chromedriver binary at the path ` +
495
- `${ this . chromedriver } , but it doesn't exist!`
495
+ `${ this . chromedriver } , but it doesn't exist!` ,
496
496
) ;
497
497
}
498
498
this . executableVerified = true ;
@@ -514,7 +514,7 @@ export class Chromedriver extends events.EventEmitter {
514
514
if ( ! coercedVersion || coercedVersion . major < MIN_CD_VERSION_WITH_W3C_SUPPORT ) {
515
515
this . log . debug (
516
516
`The WebDriver v. ${ this . driverVersion } does not fully support ${ PROTOCOLS . W3C } protocol. ` +
517
- `Defaulting to ${ PROTOCOLS . MJSONWP } `
517
+ `Defaulting to ${ PROTOCOLS . MJSONWP } ` ,
518
518
) ;
519
519
return ;
520
520
}
@@ -524,7 +524,7 @@ export class Chromedriver extends events.EventEmitter {
524
524
if ( chromeOptions . w3c === false ) {
525
525
this . log . info (
526
526
`The WebDriver v. ${ this . driverVersion } supports ${ PROTOCOLS . W3C } protocol, ` +
527
- `but ${ PROTOCOLS . MJSONWP } one has been explicitly requested`
527
+ `but ${ PROTOCOLS . MJSONWP } one has been explicitly requested` ,
528
528
) ;
529
529
return ;
530
530
}
@@ -664,7 +664,7 @@ export class Chromedriver extends events.EventEmitter {
664
664
// start subproc and wait for startDetector
665
665
await this . proc . start ( startDetector ) ;
666
666
await this . waitForOnline ( ) ;
667
- await this . startSession ( ) ;
667
+ return await this . startSession ( ) ;
668
668
} catch ( e ) {
669
669
const err = /** @type {Error } */ ( e ) ;
670
670
this . log . debug ( err ) ;
@@ -737,11 +737,14 @@ export class Chromedriver extends events.EventEmitter {
737
737
: { desiredCapabilities : this . capabilities } ;
738
738
this . log . info (
739
739
`Starting ${ this . desiredProtocol } Chromedriver session with capabilities: ` +
740
- JSON . stringify ( sessionCaps , null , 2 )
740
+ JSON . stringify ( sessionCaps , null , 2 ) ,
741
+ ) ;
742
+ const { capabilities} = /** @type {NewSessionResponse } */ (
743
+ await this . jwproxy . command ( '/session' , 'POST' , sessionCaps )
741
744
) ;
742
- await this . jwproxy . command ( '/session' , 'POST' , sessionCaps ) ;
743
745
this . log . prefix = generateLogPrefix ( this , this . jwproxy . sessionId ) ;
744
746
this . changeState ( Chromedriver . STATE_ONLINE ) ;
747
+ return capabilities ;
745
748
}
746
749
747
750
async stop ( emitStates = true ) {
@@ -864,3 +867,7 @@ Chromedriver.STATE_RESTARTING = 'restarting';
864
867
/**
865
868
* @typedef {import('./types').ChromedriverVersionMapping } ChromedriverVersionMapping
866
869
*/
870
+
871
+ /**
872
+ * @typedef {{capabilities: Record<string, any>} } NewSessionResponse
873
+ */
0 commit comments