@testring/plugin-selenium-driver 0.8.6 → 0.8.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -45,6 +45,9 @@ export declare class SeleniumPlugin implements IBrowserProxyPlugin {
45
45
  private traverseToLastParentSelector;
46
46
  private traverseShadowDom;
47
47
  end(applicant: string): Promise<void>;
48
+ private closeAllBrowserSessions;
49
+ private cleanupSeleniumProcess;
50
+ private killSeleniumProcessTree;
48
51
  kill(): Promise<void>;
49
52
  refresh(applicant: string): Promise<void>;
50
53
  click(applicant: string, selector: Selector, options?: ClickOptions): Promise<void>;
@@ -100,6 +103,7 @@ export declare class SeleniumPlugin implements IBrowserProxyPlugin {
100
103
  getText(applicant: string, selector: Selector): Promise<string>;
101
104
  elementIdSelected(applicant: string, id: string): Promise<boolean>;
102
105
  makeScreenshot(applicant: string): Promise<string | void>;
106
+ makeElementScreenshot(applicant: string, selector: Selector, scroll?: boolean): Promise<string | void>;
103
107
  uploadFile(applicant: string, filePath: string): Promise<string | void>;
104
108
  getCssProperty(applicant: string, selector: Selector, cssProperty: string): Promise<any>;
105
109
  getSource(applicant: string): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,7 @@ const deepmerge = __importStar(require("deepmerge"));
36
36
  const child_process_1 = require("@testring/child-process");
37
37
  const logger_1 = require("@testring/logger");
38
38
  const dwnld_collector_crx_1 = require("@testring/dwnld-collector-crx");
39
+ const tree_kill_1 = __importDefault(require("tree-kill"));
39
40
  const webdriver_1 = __importDefault(require("webdriver"));
40
41
  const DEFAULT_CONFIG = {
41
42
  recorderExtension: false,
@@ -180,7 +181,8 @@ class SeleniumPlugin {
180
181
  return mergedConfig;
181
182
  }
182
183
  initIntervals() {
183
- if (this.config.workerLimit !== 'local' && !this.config.disableClientPing) {
184
+ if (this.config.workerLimit !== 'local' &&
185
+ !this.config.disableClientPing) {
184
186
  if (this.config.clientCheckInterval > 0) {
185
187
  this.clientCheckInterval = setInterval(() => this.checkClientsTimeout(), this.config.clientCheckInterval);
186
188
  }
@@ -202,9 +204,18 @@ class SeleniumPlugin {
202
204
  // Note: SIGKILL cannot be caught or handled - it immediately terminates the process
203
205
  }
204
206
  forceKillSelenium() {
205
- if (this.localSelenium && !this.localSelenium.killed) {
206
- this.logger.debug('Force killing Selenium process due to signal');
207
- this.localSelenium.kill('SIGKILL');
207
+ if (this.localSelenium &&
208
+ !this.localSelenium.killed &&
209
+ this.localSelenium.pid) {
210
+ this.logger.debug('Force killing Selenium process tree due to signal');
211
+ (0, tree_kill_1.default)(this.localSelenium.pid, 'SIGKILL', (err) => {
212
+ if (err) {
213
+ this.logger.error(`Failed to force kill Selenium process tree: ${err.message}`);
214
+ }
215
+ else {
216
+ this.logger.debug('Selenium process tree force killed');
217
+ }
218
+ });
208
219
  }
209
220
  }
210
221
  stopAllSessions() {
@@ -481,12 +492,7 @@ class SeleniumPlugin {
481
492
  this.browserClients.delete(applicant);
482
493
  this.customBrowserClientsConfigs.delete(applicant);
483
494
  }
484
- async kill() {
485
- var _a, _b, _c, _d;
486
- this.logger.debug('Kill command is called');
487
- // Set killed flag to prevent new operations
488
- this.killed = true;
489
- // Close all browser sessions
495
+ async closeAllBrowserSessions() {
490
496
  for (const applicant of this.browserClients.keys()) {
491
497
  try {
492
498
  await this.end(applicant);
@@ -495,6 +501,51 @@ class SeleniumPlugin {
495
501
  this.logger.error(e);
496
502
  }
497
503
  }
504
+ }
505
+ cleanupSeleniumProcess() {
506
+ var _a, _b, _c, _d;
507
+ if (!this.localSelenium) {
508
+ return;
509
+ }
510
+ // remove listener
511
+ if (this.localSelenium.stderr) {
512
+ this.localSelenium.stderr.removeAllListeners('data');
513
+ (_a = this.localSelenium.stdout) === null || _a === void 0 ? void 0 : _a.removeAllListeners();
514
+ }
515
+ // Ensure all pipes are closed
516
+ (_b = this.localSelenium.stdout) === null || _b === void 0 ? void 0 : _b.destroy();
517
+ (_c = this.localSelenium.stderr) === null || _c === void 0 ? void 0 : _c.destroy();
518
+ (_d = this.localSelenium.stdin) === null || _d === void 0 ? void 0 : _d.destroy();
519
+ }
520
+ async killSeleniumProcessTree(pid) {
521
+ return new Promise((resolve) => {
522
+ (0, tree_kill_1.default)(pid, 'SIGTERM', (err) => {
523
+ if (err) {
524
+ this.logger.warn(`Failed to kill process tree with SIGTERM: ${err.message}`);
525
+ // Fallback to SIGKILL if SIGTERM fails
526
+ (0, tree_kill_1.default)(pid, 'SIGKILL', (killErr) => {
527
+ if (killErr) {
528
+ this.logger.error(`Failed to kill process tree with SIGKILL: ${killErr.message}`);
529
+ }
530
+ else {
531
+ this.logger.debug('Process tree killed with SIGKILL');
532
+ }
533
+ resolve();
534
+ });
535
+ }
536
+ else {
537
+ this.logger.debug('Process tree killed with SIGTERM');
538
+ resolve();
539
+ }
540
+ });
541
+ });
542
+ }
543
+ async kill() {
544
+ this.logger.debug('Kill command is called');
545
+ // Set killed flag to prevent new operations
546
+ this.killed = true;
547
+ // Close all browser sessions
548
+ await this.closeAllBrowserSessions();
498
549
  // If using 'local' mode, stop all active sessions
499
550
  if (this.config.workerLimit === 'local') {
500
551
  await this.stopAllSessions();
@@ -505,40 +556,17 @@ class SeleniumPlugin {
505
556
  this.logger.debug('Selenium process already killed');
506
557
  return;
507
558
  }
508
- // remove listener
509
- if (this.localSelenium.stderr) {
510
- this.localSelenium.stderr.removeAllListeners('data');
511
- (_a = this.localSelenium.stdout) === null || _a === void 0 ? void 0 : _a.removeAllListeners();
559
+ const pid = this.localSelenium.pid;
560
+ if (!pid) {
561
+ this.logger.warn('Selenium process has no PID, cannot kill process tree');
562
+ return;
512
563
  }
513
- // Ensure all pipes are closed
514
- (_b = this.localSelenium.stdout) === null || _b === void 0 ? void 0 : _b.destroy();
515
- (_c = this.localSelenium.stderr) === null || _c === void 0 ? void 0 : _c.destroy();
516
- (_d = this.localSelenium.stdin) === null || _d === void 0 ? void 0 : _d.destroy();
517
- this.logger.debug(`Stopping local Selenium server (PID: ${this.localSelenium.pid})`);
518
- // Try SIGTERM first
519
- this.localSelenium.kill('SIGTERM');
520
- // Wait for exit event with a timeout (ensures it does not hang forever)
521
- const waitForExit = new Promise((resolve) => {
522
- var _a;
523
- (_a = this.localSelenium) === null || _a === void 0 ? void 0 : _a.once('exit', () => {
524
- this.logger.debug('Selenium process exited.');
525
- resolve();
526
- });
527
- });
528
- // Force kill if not exiting within 1 second (reduced from 3 seconds)
529
- const forceKill = new Promise((resolve) => {
530
- setTimeout(() => {
531
- if (this.localSelenium && !this.localSelenium.killed) {
532
- this.logger.warn(`Selenium did not exit in time. Sending SIGKILL.`);
533
- this.localSelenium.kill('SIGKILL');
534
- }
535
- resolve();
536
- }, 1000); // Reduced timeout for faster cleanup
537
- });
538
- // Wait for either normal exit or force kill
539
- await Promise.race([waitForExit, forceKill]);
564
+ this.cleanupSeleniumProcess();
565
+ this.logger.debug(`Stopping local Selenium server and all child processes (PID: ${pid})`);
566
+ // Use tree-kill to properly terminate the process tree
567
+ await this.killSeleniumProcessTree(pid);
540
568
  this.localSelenium.removeAllListeners();
541
- this.logger.debug('Selenium process and all associated pipes closed.');
569
+ this.logger.debug('Selenium process tree and all associated pipes closed.');
542
570
  }
543
571
  }
544
572
  async refresh(applicant) {
@@ -823,6 +851,12 @@ class SeleniumPlugin {
823
851
  const client = this.getBrowserClient(applicant);
824
852
  return client.takeScreenshot();
825
853
  }
854
+ async makeElementScreenshot(applicant, selector, scroll = true) {
855
+ await this.createClient(applicant);
856
+ const client = this.getBrowserClient(applicant);
857
+ const element = await this.getElement(applicant, selector);
858
+ return client.takeElementScreenshot(await element.elementId, scroll);
859
+ }
826
860
  async uploadFile(applicant, filePath) {
827
861
  await this.createClient(applicant);
828
862
  const client = this.getBrowserClient(applicant);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@testring/plugin-selenium-driver",
3
- "version": "0.8.6",
3
+ "version": "0.8.8",
4
4
  "main": "./dist/index.js",
5
5
  "typings": "./src/index.ts",
6
6
  "repository": {
@@ -13,11 +13,11 @@
13
13
  "author": "RingCentral",
14
14
  "license": "MIT",
15
15
  "dependencies": {
16
- "@testring/child-process": "0.8.6",
17
- "@testring/dwnld-collector-crx": "0.8.6",
18
- "@testring/logger": "0.8.6",
19
- "@testring/plugin-api": "0.8.6",
20
- "@testring/types": "0.8.6",
16
+ "@testring/child-process": "0.8.8",
17
+ "@testring/dwnld-collector-crx": "0.8.8",
18
+ "@testring/logger": "0.8.8",
19
+ "@testring/plugin-api": "0.8.8",
20
+ "@testring/types": "0.8.8",
21
21
  "@types/deepmerge": "2.2.3",
22
22
  "@types/node": "22.8.5",
23
23
  "@wdio/types": "9.2.2",
@@ -25,6 +25,7 @@
25
25
  "deepmerge": "4.3.1",
26
26
  "puppeteer-core": "22.3.0",
27
27
  "selenium-server": "3.141.59",
28
+ "tree-kill": "1.2.2",
28
29
  "webdriverio": "9.20.0"
29
30
  }
30
31
  }
@@ -7,7 +7,7 @@ import {
7
7
  Selector,
8
8
  ShadowCssSelector,
9
9
  isXpathSelector,
10
- isShadowCssSelector
10
+ isShadowCssSelector,
11
11
  } from '@testring/types';
12
12
 
13
13
  import {ChildProcess} from 'child_process';
@@ -20,6 +20,7 @@ import * as deepmerge from 'deepmerge';
20
20
  import {spawnWithPipes} from '@testring/child-process';
21
21
  import {loggerClient} from '@testring/logger';
22
22
  import {getCrxBase64} from '@testring/dwnld-collector-crx';
23
+ import kill from 'tree-kill';
23
24
 
24
25
  import type {Cookie} from '@wdio/protocols';
25
26
  import type {ClickOptions, MockFilterOptions, WaitUntilOptions} from 'webdriverio';
@@ -77,17 +78,17 @@ function getSeleniumJarPath(version: SeleniumVersion): string {
77
78
  if (version === 'v4') {
78
79
  // For Selenium v4, we expect the JAR to be in a specific location
79
80
  const seleniumV4Path = path.join(__dirname, '..', 'selenium-server-v4', 'selenium-server-4.34.0.jar');
80
-
81
+
81
82
  if (!fs.existsSync(seleniumV4Path)) {
82
83
  throw new Error(
83
84
  `Selenium v4 JAR not found at expected path: ${seleniumV4Path}. ` +
84
- 'Please ensure selenium-server-4.34.0.jar is available in the package directory.'
85
+ 'Please ensure selenium-server-4.34.0.jar is available in the package directory.',
85
86
  );
86
87
  }
87
-
88
+
88
89
  return seleniumV4Path;
89
90
  }
90
-
91
+
91
92
  // For v3 and other versions, use the original logic
92
93
  const seleniumServer = require('selenium-server');
93
94
  return seleniumServer.path;
@@ -99,7 +100,7 @@ function setupProcessListeners(
99
100
  resolve: () => void,
100
101
  reject: (error: Error) => void,
101
102
  version: SeleniumVersion,
102
- logger: { verbose: (message: string) => void }
103
+ logger: {verbose: (message: string) => void},
103
104
  ) {
104
105
  if (!seleniumProcess.stderr && !seleniumProcess.stdout) {
105
106
  reject(new Error('There is no STDERR or STDOUT on selenium worker'));
@@ -119,9 +120,14 @@ function setupProcessListeners(
119
120
  v3: 'SeleniumServer.boot',
120
121
  };
121
122
 
122
- const checkForReadyMessage = (message: string, stream: 'stdout' | 'stderr') => {
123
- logger.verbose(`[Selenium ${version}] [${stream.toUpperCase()}] ${message.trim()}`);
124
-
123
+ const checkForReadyMessage = (
124
+ message: string,
125
+ stream: 'stdout' | 'stderr',
126
+ ) => {
127
+ logger.verbose(
128
+ `[Selenium ${version}] [${stream.toUpperCase()}] ${message.trim()}`,
129
+ );
130
+
125
131
  if (message.includes(readyMessages[version])) {
126
132
  isReady = true;
127
133
  clearTimeout(timeout);
@@ -134,20 +140,24 @@ function setupProcessListeners(
134
140
  seleniumProcess.stdout?.on('data', (data) => {
135
141
  checkForReadyMessage(data.toString(), 'stdout');
136
142
  });
137
-
143
+
138
144
  // Also listen to stderr for error messages
139
145
  seleniumProcess.stderr?.on('data', (data) => {
140
- logger.verbose(`[Selenium ${version}] [STDERR] ${data.toString().trim()}`);
146
+ logger.verbose(
147
+ `[Selenium ${version}] [STDERR] ${data.toString().trim()}`,
148
+ );
141
149
  });
142
150
  } else {
143
151
  // For v3, ready message appears in stderr
144
152
  seleniumProcess.stderr?.on('data', (data) => {
145
153
  checkForReadyMessage(data.toString(), 'stderr');
146
154
  });
147
-
155
+
148
156
  // Also listen to stdout for other messages
149
157
  seleniumProcess.stdout?.on('data', (data) => {
150
- logger.verbose(`[Selenium ${version}] [STDOUT] ${data.toString().trim()}`);
158
+ logger.verbose(
159
+ `[Selenium ${version}] [STDOUT] ${data.toString().trim()}`,
160
+ );
151
161
  });
152
162
  }
153
163
 
@@ -159,7 +169,11 @@ function setupProcessListeners(
159
169
  seleniumProcess.on('exit', (code) => {
160
170
  if (!isReady) {
161
171
  clearTimeout(timeout);
162
- reject(new Error(`Selenium process exited with code ${code} before becoming ready`));
172
+ reject(
173
+ new Error(
174
+ `Selenium process exited with code ${code} before becoming ready`,
175
+ ),
176
+ );
163
177
  }
164
178
  });
165
179
  }
@@ -173,7 +187,8 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
173
187
 
174
188
  private browserClients: Map<string, browserClientItem> = new Map();
175
189
 
176
- private customBrowserClientsConfigs: Map<string, WebdriverIOConfig> = new Map();
190
+ private customBrowserClientsConfigs: Map<string, WebdriverIOConfig> =
191
+ new Map();
177
192
 
178
193
  private waitForReadyState: Promise<void> = Promise.resolve();
179
194
 
@@ -227,7 +242,10 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
227
242
  }
228
243
 
229
244
  private initIntervals() {
230
- if (this.config.workerLimit !== 'local' && !this.config.disableClientPing) {
245
+ if (
246
+ this.config.workerLimit !== 'local' &&
247
+ !this.config.disableClientPing
248
+ ) {
231
249
  if (this.config.clientCheckInterval > 0) {
232
250
  this.clientCheckInterval = setInterval(
233
251
  () => this.checkClientsTimeout(),
@@ -248,18 +266,36 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
248
266
  process.on('exit', () => this.forceKillSelenium());
249
267
  process.on('SIGINT', () => this.forceKillSelenium());
250
268
  process.on('SIGTERM', () => this.forceKillSelenium());
251
-
269
+
252
270
  // Debug mode specific cleanup handlers
253
271
  process.on('SIGUSR1', () => this.forceKillSelenium()); // Debugger disconnect
254
272
  process.on('SIGUSR2', () => this.forceKillSelenium()); // Debugger disconnect alternative
255
-
273
+
256
274
  // Note: SIGKILL cannot be caught or handled - it immediately terminates the process
257
275
  }
258
276
 
259
277
  private forceKillSelenium() {
260
- if (this.localSelenium && !this.localSelenium.killed) {
261
- this.logger.debug('Force killing Selenium process due to signal');
262
- this.localSelenium.kill('SIGKILL');
278
+ if (
279
+ this.localSelenium &&
280
+ !this.localSelenium.killed &&
281
+ this.localSelenium.pid
282
+ ) {
283
+ this.logger.debug(
284
+ 'Force killing Selenium process tree due to signal',
285
+ );
286
+ kill(
287
+ this.localSelenium.pid,
288
+ 'SIGKILL',
289
+ (err: Error | undefined) => {
290
+ if (err) {
291
+ this.logger.error(
292
+ `Failed to force kill Selenium process tree: ${err.message}`,
293
+ );
294
+ } else {
295
+ this.logger.debug('Selenium process tree force killed');
296
+ }
297
+ },
298
+ );
263
299
  }
264
300
  }
265
301
 
@@ -287,7 +323,7 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
287
323
  if (this.config.chromeDriverPath) {
288
324
  return this.config.chromeDriverPath;
289
325
  }
290
-
326
+
291
327
  return require('chromedriver').path;
292
328
  }
293
329
 
@@ -297,15 +333,20 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
297
333
  return [`-Dwebdriver.chrome.driver=${chromeDriverPath}`];
298
334
  }
299
335
 
300
- private buildSeleniumArgs(seleniumJarPath: string, version: SeleniumVersion, port: number, chromeDriverArgs: string[]): string[] {
336
+ private buildSeleniumArgs(
337
+ seleniumJarPath: string,
338
+ version: SeleniumVersion,
339
+ port: number,
340
+ chromeDriverArgs: string[],
341
+ ): string[] {
301
342
  const args = [...chromeDriverArgs];
302
-
343
+
303
344
  if (version === 'v4') {
304
345
  args.push(
305
- '-jar',
306
- seleniumJarPath,
307
- 'standalone',
308
- '--port',
346
+ '-jar',
347
+ seleniumJarPath,
348
+ 'standalone',
349
+ '--port',
309
350
  port.toString(),
310
351
  '--host',
311
352
  '127.0.0.1',
@@ -313,12 +354,12 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
313
354
  } else {
314
355
  args.push('-jar', seleniumJarPath, '-port', port.toString());
315
356
  }
316
-
357
+
317
358
  // Append custom selenium arguments if provided
318
359
  if (this.config.seleniumArgs && this.config.seleniumArgs.length > 0) {
319
360
  args.push(...this.config.seleniumArgs);
320
361
  }
321
-
362
+
322
363
  return args;
323
364
  }
324
365
 
@@ -329,15 +370,30 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
329
370
  try {
330
371
  const seleniumJarPath = getSeleniumJarPath(version);
331
372
  const chromeDriverArgs = this.getChromeDriverArgs();
332
- const seleniumArgs = this.buildSeleniumArgs(seleniumJarPath, version, this.config.port || 4444, chromeDriverArgs);
333
-
334
- this.logger.debug(`Starting Selenium with command: java ${seleniumArgs.join(' ')}`);
335
-
373
+ const seleniumArgs = this.buildSeleniumArgs(
374
+ seleniumJarPath,
375
+ version,
376
+ this.config.port || 4444,
377
+ chromeDriverArgs,
378
+ );
379
+
380
+ this.logger.debug(
381
+ `Starting Selenium with command: java ${seleniumArgs.join(
382
+ ' ',
383
+ )}`,
384
+ );
385
+
336
386
  this.localSelenium = spawnWithPipes('java', seleniumArgs);
337
387
 
338
388
  this.waitForReadyState = new Promise((resolve, reject) => {
339
389
  if (this.localSelenium) {
340
- setupProcessListeners(this.localSelenium, resolve, reject, version, this.logger);
390
+ setupProcessListeners(
391
+ this.localSelenium,
392
+ resolve,
393
+ reject,
394
+ version,
395
+ this.logger,
396
+ );
341
397
  } else {
342
398
  reject(new Error('Failed to spawn Selenium process'));
343
399
  }
@@ -346,9 +402,11 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
346
402
  // Wait for the server to be ready
347
403
  await this.waitForReadyState;
348
404
  this.logger.debug(`Selenium server (${version}) is ready`);
349
-
350
405
  } catch (err) {
351
- this.logger.error(`Local selenium server init failed (version: ${version})`, err);
406
+ this.logger.error(
407
+ `Local selenium server init failed (version: ${version})`,
408
+ err,
409
+ );
352
410
  throw err; // Re-throw to allow upstream error handling
353
411
  }
354
412
  }
@@ -415,15 +473,10 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
415
473
  applicant: string,
416
474
  config: WebdriverIOConfig,
417
475
  ) {
418
- this.customBrowserClientsConfigs.set(
419
- applicant,
420
- config
421
- );
476
+ this.customBrowserClientsConfigs.set(applicant, config);
422
477
  }
423
478
 
424
- public getCustomBrowserClientConfig(
425
- applicant: string,
426
- ) {
479
+ public getCustomBrowserClientConfig(applicant: string) {
427
480
  return this.customBrowserClientsConfigs.get(applicant);
428
481
  }
429
482
 
@@ -434,7 +487,7 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
434
487
  if (this.killed) {
435
488
  throw new Error('SeleniumPlugin is being killed');
436
489
  }
437
-
490
+
438
491
  await this.waitForReadyState;
439
492
  const clientData = this.browserClients.get(applicant);
440
493
 
@@ -498,13 +551,16 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
498
551
  } else if (isShadowCssSelector(selector)) {
499
552
  return this.getElementFromShadowCss(client, selector);
500
553
  }
501
-
554
+
502
555
  throw new Error('Unknown selector type');
503
556
  }
504
557
 
505
- private async getElementFromShadowCss(client: BrowserObjectCustom, selector: ShadowCssSelector) {
558
+ private async getElementFromShadowCss(
559
+ client: BrowserObjectCustom,
560
+ selector: ShadowCssSelector,
561
+ ) {
506
562
  const {css, parentSelectors} = selector;
507
-
563
+
508
564
  // Error first: validate selector structure
509
565
  this.validateShadowCssSelector(selector);
510
566
 
@@ -513,7 +569,11 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
513
569
  } catch (error) {
514
570
  // Provide more context in error messages
515
571
  if (error instanceof Error) {
516
- throw new Error(`Shadow DOM traversal failed: ${error.message}. Selector: ${JSON.stringify(selector)}`);
572
+ throw new Error(
573
+ `Shadow DOM traversal failed: ${
574
+ error.message
575
+ }. Selector: ${JSON.stringify(selector)}`,
576
+ );
517
577
  }
518
578
  throw error;
519
579
  }
@@ -521,43 +581,54 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
521
581
 
522
582
  private validateShadowCssSelector(selector: ShadowCssSelector): void {
523
583
  const {css, parentSelectors} = selector;
524
-
584
+
525
585
  if (!css || typeof css !== 'string') {
526
586
  throw new Error('Shadow CSS selector must have a valid CSS string');
527
587
  }
528
-
588
+
529
589
  if (!Array.isArray(parentSelectors) || parentSelectors.length === 0) {
530
- throw new Error('Shadow CSS selector must have at least one parent selector');
590
+ throw new Error(
591
+ 'Shadow CSS selector must have at least one parent selector',
592
+ );
531
593
  }
532
-
594
+
533
595
  // Validate all parent selectors are non-empty strings
534
596
  for (const [index, parentSelector] of parentSelectors.entries()) {
535
597
  if (!parentSelector || typeof parentSelector !== 'string') {
536
- throw new Error(`Parent selector at index ${index} must be a non-empty string`);
598
+ throw new Error(
599
+ `Parent selector at index ${index} must be a non-empty string`,
600
+ );
537
601
  }
538
602
  }
539
603
  }
540
604
 
541
- private async traverseToLastParentSelector(client: BrowserObjectCustom, parentSelectors: string[]) {
605
+ private async traverseToLastParentSelector(
606
+ client: BrowserObjectCustom,
607
+ parentSelectors: string[],
608
+ ) {
542
609
  const [firstParentSelector, ...restParentSelectors] = parentSelectors;
543
-
610
+
544
611
  // TypeScript assertion: we know firstParentSelector exists due to validation
545
612
  if (!firstParentSelector) {
546
613
  throw new Error('First parent selector is required');
547
614
  }
548
-
615
+
549
616
  // Get the first parent element
550
617
  let currentElement = await client.$(firstParentSelector);
551
-
618
+
552
619
  if (!currentElement) {
553
- throw new Error(`Failed to find parent element with selector: ${firstParentSelector}`);
620
+ throw new Error(
621
+ `Failed to find parent element with selector: ${firstParentSelector}`,
622
+ );
554
623
  }
555
624
 
556
625
  // Traverse through shadow DOM hierarchy
557
626
  for (const parentSelector of restParentSelectors) {
558
627
  const shadowElement = await currentElement.shadow$(parentSelector);
559
628
  if (!shadowElement) {
560
- throw new Error(`Failed to find shadow element with selector: ${parentSelector}`);
629
+ throw new Error(
630
+ `Failed to find shadow element with selector: ${parentSelector}`,
631
+ );
561
632
  }
562
633
  currentElement = shadowElement;
563
634
  }
@@ -565,14 +636,23 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
565
636
  return currentElement;
566
637
  }
567
638
 
568
- private async traverseShadowDom(client: BrowserObjectCustom, css: string, parentSelectors: string[]) {
639
+ private async traverseShadowDom(
640
+ client: BrowserObjectCustom,
641
+ css: string,
642
+ parentSelectors: string[],
643
+ ) {
569
644
  // Traverse to the last parent selector
570
- const lastParentElement = await this.traverseToLastParentSelector(client, parentSelectors);
645
+ const lastParentElement = await this.traverseToLastParentSelector(
646
+ client,
647
+ parentSelectors,
648
+ );
571
649
 
572
650
  // Get the final target element within the shadow DOM
573
651
  const targetElement = await lastParentElement.shadow$(css);
574
652
  if (!targetElement) {
575
- throw new Error(`Failed to find target element with CSS selector: ${css}`);
653
+ throw new Error(
654
+ `Failed to find target element with CSS selector: ${css}`,
655
+ );
576
656
  }
577
657
 
578
658
  return targetElement;
@@ -605,7 +685,7 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
605
685
  } else {
606
686
  await this.logger.stepWarning(
607
687
  `Stopping sessions for applicant warning ${applicant}. ` +
608
- `Session ids are not equal, started with - ${startingSessionID}, ended with - ${sessionID}`,
688
+ `Session ids are not equal, started with - ${startingSessionID}, ended with - ${sessionID}`,
609
689
  async () => {
610
690
  try {
611
691
  if (startingSessionID) {
@@ -640,13 +720,7 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
640
720
  this.customBrowserClientsConfigs.delete(applicant);
641
721
  }
642
722
 
643
- public async kill() {
644
- this.logger.debug('Kill command is called');
645
-
646
- // Set killed flag to prevent new operations
647
- this.killed = true;
648
-
649
- // Close all browser sessions
723
+ private async closeAllBrowserSessions() {
650
724
  for (const applicant of this.browserClients.keys()) {
651
725
  try {
652
726
  await this.end(applicant);
@@ -654,6 +728,61 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
654
728
  this.logger.error(e);
655
729
  }
656
730
  }
731
+ }
732
+
733
+ private cleanupSeleniumProcess() {
734
+ if (!this.localSelenium) {
735
+ return;
736
+ }
737
+
738
+ // remove listener
739
+ if (this.localSelenium.stderr) {
740
+ this.localSelenium.stderr.removeAllListeners('data');
741
+ this.localSelenium.stdout?.removeAllListeners();
742
+ }
743
+
744
+ // Ensure all pipes are closed
745
+ this.localSelenium.stdout?.destroy();
746
+ this.localSelenium.stderr?.destroy();
747
+ this.localSelenium.stdin?.destroy();
748
+ }
749
+
750
+ private async killSeleniumProcessTree(pid: number): Promise<void> {
751
+ return new Promise<void>((resolve) => {
752
+ kill(pid, 'SIGTERM', (err: Error | undefined) => {
753
+ if (err) {
754
+ this.logger.warn(
755
+ `Failed to kill process tree with SIGTERM: ${err.message}`,
756
+ );
757
+ // Fallback to SIGKILL if SIGTERM fails
758
+ kill(pid, 'SIGKILL', (killErr: Error | undefined) => {
759
+ if (killErr) {
760
+ this.logger.error(
761
+ `Failed to kill process tree with SIGKILL: ${killErr.message}`,
762
+ );
763
+ } else {
764
+ this.logger.debug(
765
+ 'Process tree killed with SIGKILL',
766
+ );
767
+ }
768
+ resolve();
769
+ });
770
+ } else {
771
+ this.logger.debug('Process tree killed with SIGTERM');
772
+ resolve();
773
+ }
774
+ });
775
+ });
776
+ }
777
+
778
+ public async kill() {
779
+ this.logger.debug('Kill command is called');
780
+
781
+ // Set killed flag to prevent new operations
782
+ this.killed = true;
783
+
784
+ // Close all browser sessions
785
+ await this.closeAllBrowserSessions();
657
786
 
658
787
  // If using 'local' mode, stop all active sessions
659
788
  if (this.config.workerLimit === 'local') {
@@ -666,53 +795,28 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
666
795
  this.logger.debug('Selenium process already killed');
667
796
  return;
668
797
  }
669
-
670
- // remove listener
671
- if (this.localSelenium.stderr) {
672
- this.localSelenium.stderr.removeAllListeners('data');
673
- this.localSelenium.stdout?.removeAllListeners();
798
+
799
+ const pid = this.localSelenium.pid;
800
+ if (!pid) {
801
+ this.logger.warn(
802
+ 'Selenium process has no PID, cannot kill process tree',
803
+ );
804
+ return;
674
805
  }
675
806
 
676
- // Ensure all pipes are closed
677
- this.localSelenium.stdout?.destroy();
678
- this.localSelenium.stderr?.destroy();
679
- this.localSelenium.stdin?.destroy();
807
+ this.cleanupSeleniumProcess();
680
808
 
681
809
  this.logger.debug(
682
- `Stopping local Selenium server (PID: ${this.localSelenium.pid})`,
810
+ `Stopping local Selenium server and all child processes (PID: ${pid})`,
683
811
  );
684
812
 
685
- // Try SIGTERM first
686
- this.localSelenium.kill('SIGTERM');
687
-
688
- // Wait for exit event with a timeout (ensures it does not hang forever)
689
- const waitForExit = new Promise<void>((resolve) => {
690
- this.localSelenium?.once('exit', () => {
691
- this.logger.debug('Selenium process exited.');
692
- resolve();
693
- });
694
- });
695
-
696
- // Force kill if not exiting within 1 second (reduced from 3 seconds)
697
- const forceKill = new Promise<void>((resolve) => {
698
- setTimeout(() => {
699
- if (this.localSelenium && !this.localSelenium.killed) {
700
- this.logger.warn(
701
- `Selenium did not exit in time. Sending SIGKILL.`,
702
- );
703
- this.localSelenium.kill('SIGKILL');
704
- }
705
- resolve();
706
- }, 1000); // Reduced timeout for faster cleanup
707
- });
708
-
709
- // Wait for either normal exit or force kill
710
- await Promise.race([waitForExit, forceKill]);
813
+ // Use tree-kill to properly terminate the process tree
814
+ await this.killSeleniumProcessTree(pid);
711
815
 
712
816
  this.localSelenium.removeAllListeners();
713
817
 
714
818
  this.logger.debug(
715
- 'Selenium process and all associated pipes closed.',
819
+ 'Selenium process tree and all associated pipes closed.',
716
820
  );
717
821
  }
718
822
  }
@@ -852,7 +956,10 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
852
956
  const client = this.getBrowserClient(applicant);
853
957
 
854
958
  if (isXpathSelector(selector)) {
855
- const elements = (await client.findElements('xpath', selector.xpath)) as unknown;
959
+ const elements = (await client.findElements(
960
+ 'xpath',
961
+ selector.xpath,
962
+ )) as unknown;
856
963
  return (elements as Array<Record<string, string>>).map((o) => {
857
964
  const keys = Object.keys(o);
858
965
  const firstKey = keys[0];
@@ -862,13 +969,16 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
862
969
  return {ELEMENT: o[firstKey]};
863
970
  });
864
971
  } else if (isShadowCssSelector(selector)) {
865
- const lastParentElement = await this.traverseToLastParentSelector(client, selector.parentSelectors);
972
+ const lastParentElement = await this.traverseToLastParentSelector(
973
+ client,
974
+ selector.parentSelectors,
975
+ );
866
976
  const elements = lastParentElement.shadow$$(selector.css);
867
977
  return elements.map((element) => {
868
978
  return {ELEMENT: element.elementId};
869
979
  });
870
980
  }
871
-
981
+
872
982
  throw new Error('Unknown selector type');
873
983
  }
874
984
 
@@ -895,12 +1005,20 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
895
1005
  return element.setValue(value);
896
1006
  }
897
1007
 
898
- public async selectByIndex(applicant: string, selector: Selector, value: any) {
1008
+ public async selectByIndex(
1009
+ applicant: string,
1010
+ selector: Selector,
1011
+ value: any,
1012
+ ) {
899
1013
  const element = await this.getElement(applicant, selector);
900
1014
  return element.selectByIndex(value);
901
1015
  }
902
1016
 
903
- public async selectByValue(applicant: string, selector: Selector, value: any) {
1017
+ public async selectByValue(
1018
+ applicant: string,
1019
+ selector: Selector,
1020
+ value: any,
1021
+ ) {
904
1022
  const element = await this.getElement(applicant, selector);
905
1023
  return element.selectByAttribute('value', value);
906
1024
  }
@@ -1003,7 +1121,10 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
1003
1121
  destinationSelector: Selector,
1004
1122
  ) {
1005
1123
  const sourceElement = await this.getElement(applicant, sourceSelector);
1006
- const destinationElement = await this.getElement(applicant, destinationSelector);
1124
+ const destinationElement = await this.getElement(
1125
+ applicant,
1126
+ destinationSelector,
1127
+ );
1007
1128
  return sourceElement.dragAndDrop(destinationElement);
1008
1129
  }
1009
1130
 
@@ -1126,6 +1247,14 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
1126
1247
  return client.takeScreenshot();
1127
1248
  }
1128
1249
 
1250
+ public async makeElementScreenshot(applicant: string, selector: Selector, scroll: boolean = true): Promise<string | void> {
1251
+ await this.createClient(applicant);
1252
+ const client = this.getBrowserClient(applicant);
1253
+ const element = await this.getElement(applicant, selector);
1254
+
1255
+ return client.takeElementScreenshot(await element.elementId, scroll);
1256
+ }
1257
+
1129
1258
  public async uploadFile(
1130
1259
  applicant: string,
1131
1260
  filePath: string,
@@ -1337,7 +1466,9 @@ export class SeleniumPlugin implements IBrowserProxyPlugin {
1337
1466
  return client.setTimeZone(timeZone);
1338
1467
  }
1339
1468
 
1340
- public async getWindowSize(applicant: string): Promise<{width: number; height: number}> {
1469
+ public async getWindowSize(
1470
+ applicant: string,
1471
+ ): Promise<{width: number; height: number}> {
1341
1472
  await this.createClient(applicant);
1342
1473
  const client = this.getBrowserClient(applicant);
1343
1474
  return client.getWindowSize();