|
298 | 298 | document.recorded_actions = [];
|
299 | 299 | sessionStorage.setItem('pause_recorder', 'no');
|
300 | 300 | sessionStorage.setItem('recorder_mode', '1');
|
| 301 | + sessionStorage.setItem('recorder_title', document.title) |
301 | 302 | const d_now = Date.now();
|
302 | 303 | w_orig = window.location.origin;
|
303 | 304 | w_href = window.location.href;
|
|
316 | 317 | };
|
317 | 318 | reset_recorder_state();
|
318 | 319 |
|
| 320 | +var reset_if_recorder_undefined = function() { |
| 321 | + if (typeof document.recorded_actions === 'undefined') |
| 322 | + reset_recorder_state(); |
| 323 | +}; |
| 324 | +
|
| 325 | +document.body.addEventListener('mouseover', function (event) { |
| 326 | + reset_if_recorder_undefined(); |
| 327 | + if (sessionStorage.getItem('pause_recorder') === 'yes') return; |
| 328 | + const element = event.target; |
| 329 | + const selector = getBestSelector(element); |
| 330 | + if (!selector.startsWith('body') && !selector.includes(' div')) { |
| 331 | + document.title = selector; |
| 332 | + } |
| 333 | +}); |
| 334 | +document.body.addEventListener('mouseout', function (event) { |
| 335 | + reset_if_recorder_undefined(); |
| 336 | + if (sessionStorage.getItem('pause_recorder') === 'yes') return; |
| 337 | + document.title = sessionStorage.getItem('recorder_title'); |
| 338 | +}); |
319 | 339 | document.body.addEventListener('click', function (event) {
|
320 | 340 | // Do Nothing.
|
321 | 341 | });
|
322 | 342 | document.body.addEventListener('formdata', function (event) {
|
323 |
| - if (typeof document.recorded_actions === 'undefined') |
324 |
| - reset_recorder_state(); |
325 |
| - if (sessionStorage.getItem('pause_recorder') === 'yes') |
326 |
| - return; |
| 343 | + reset_if_recorder_undefined(); |
| 344 | + if (sessionStorage.getItem('pause_recorder') === 'yes') return; |
327 | 345 | const d_now = Date.now();
|
328 | 346 | ra_len = document.recorded_actions.length;
|
329 | 347 | if (ra_len > 0 &&
|
|
339 | 357 | }
|
340 | 358 | });
|
341 | 359 | document.body.addEventListener('dragstart', function (event) {
|
342 |
| - if (typeof document.recorded_actions === 'undefined') |
343 |
| - reset_recorder_state(); |
344 |
| - if (sessionStorage.getItem('pause_recorder') === 'yes') |
345 |
| - return; |
| 360 | + reset_if_recorder_undefined(); |
| 361 | + if (sessionStorage.getItem('pause_recorder') === 'yes') return; |
346 | 362 | const d_now = Date.now();
|
347 | 363 | const element = event.target;
|
348 | 364 | const selector = getBestSelector(element);
|
|
360 | 376 | sessionStorage.setItem('recorded_actions', json_rec_act);
|
361 | 377 | });
|
362 | 378 | document.body.addEventListener('dragend', function (event) {
|
363 |
| - if (typeof document.recorded_actions === 'undefined') |
364 |
| - reset_recorder_state(); |
365 |
| - if (sessionStorage.getItem('pause_recorder') === 'yes') |
366 |
| - return; |
| 379 | + reset_if_recorder_undefined(); |
| 380 | + if (sessionStorage.getItem('pause_recorder') === 'yes') return; |
367 | 381 | ra_len = document.recorded_actions.length;
|
368 | 382 | if (ra_len > 0 && document.recorded_actions[ra_len-1][0] === 'drags')
|
369 | 383 | {
|
|
373 | 387 | }
|
374 | 388 | });
|
375 | 389 | document.body.addEventListener('drop', function (event) {
|
376 |
| - if (typeof document.recorded_actions === 'undefined') |
377 |
| - reset_recorder_state(); |
378 |
| - if (sessionStorage.getItem('pause_recorder') === 'yes') |
379 |
| - return; |
| 390 | + reset_if_recorder_undefined(); |
| 391 | + if (sessionStorage.getItem('pause_recorder') === 'yes') return; |
380 | 392 | const d_now = Date.now();
|
381 | 393 | const element = event.target;
|
382 | 394 | const selector = getBestSelector(element);
|
|
391 | 403 | }
|
392 | 404 | });
|
393 | 405 | document.body.addEventListener('change', function (event) {
|
394 |
| - if (typeof document.recorded_actions === 'undefined') |
395 |
| - reset_recorder_state(); |
396 |
| - if (sessionStorage.getItem('pause_recorder') === 'yes') |
397 |
| - return; |
| 406 | + reset_if_recorder_undefined(); |
| 407 | + if (sessionStorage.getItem('pause_recorder') === 'yes') return; |
398 | 408 | const d_now = Date.now();
|
399 | 409 | const element = event.target;
|
400 | 410 | const selector = getBestSelector(element);
|
|
414 | 424 | document.recorded_actions.pop();
|
415 | 425 | ra_len = document.recorded_actions.length;
|
416 | 426 | }
|
417 |
| - // Do it twice for click and multiple changes. |
| 427 | + // Again for click & more changes. |
418 | 428 | if (ra_len > 0 && document.recorded_actions[ra_len-1][1] === selector)
|
419 | 429 | {
|
420 | 430 | document.recorded_actions.pop();
|
|
436 | 446 | document.recorded_actions[ra_len-1][1] === selector &&
|
437 | 447 | tag_name === 'input' && e_type === 'checkbox')
|
438 | 448 | {
|
439 |
| - // Pop duplicate checkbox state changes. |
| 449 | + // Pop extra checkbox changes. |
440 | 450 | document.recorded_actions.pop();
|
441 | 451 | ra_len = document.recorded_actions.length;
|
442 | 452 | if (ra_len > 0 && document.recorded_actions[ra_len-1][1] === selector)
|
443 | 453 | document.recorded_actions.pop();
|
444 | 454 | }
|
445 |
| - // Go back to `if`, not `else if`. |
| 455 | + // Use 'if' again, not 'else if'. |
446 | 456 | if (tag_name === 'input' && e_type === 'checkbox' && element.checked)
|
447 | 457 | document.recorded_actions.push(['c_box', selector, 'yes', d_now]);
|
448 | 458 | else if (tag_name === 'input' && e_type === 'checkbox' && !element.checked)
|
|
451 | 461 | sessionStorage.setItem('recorded_actions', json_rec_act);
|
452 | 462 | });
|
453 | 463 | document.body.addEventListener('mousedown', function (event) {
|
454 |
| - if (typeof document.recorded_actions === 'undefined') |
455 |
| - reset_recorder_state(); |
456 |
| - if (sessionStorage.getItem('pause_recorder') === 'yes') |
457 |
| - return; |
| 464 | + reset_if_recorder_undefined(); |
| 465 | + if (sessionStorage.getItem('pause_recorder') === 'yes') return; |
458 | 466 | const d_now = Date.now();
|
459 | 467 | const element = event.target;
|
460 | 468 | const selector = getBestSelector(element);
|
|
463 | 471 | if (ra_len > 0 && document.recorded_actions[ra_len-1][0] === 'mo_dn')
|
464 | 472 | document.recorded_actions.pop();
|
465 | 473 | if (tag_name === 'select') {
|
466 |
| - // Do Nothing. (Handle select in 'change' action.) |
| 474 | + // Do Nothing. (Handle in 'change' action.) |
467 | 475 | }
|
468 | 476 | else
|
469 | 477 | document.recorded_actions.push(['mo_dn', selector, '', d_now]);
|
470 | 478 | json_rec_act = JSON.stringify(document.recorded_actions);
|
471 | 479 | sessionStorage.setItem('recorded_actions', json_rec_act);
|
472 | 480 | });
|
473 | 481 | document.body.addEventListener('mouseup', function (event) {
|
474 |
| - if (typeof document.recorded_actions === 'undefined') |
475 |
| - reset_recorder_state(); |
476 |
| - if (sessionStorage.getItem('pause_recorder') === 'yes') |
477 |
| - return; |
| 482 | + reset_if_recorder_undefined(); |
| 483 | + if (sessionStorage.getItem('pause_recorder') === 'yes') return; |
478 | 484 | const d_now = Date.now();
|
479 | 485 | const element = event.target;
|
480 | 486 | const selector = getBestSelector(element);
|
|
606 | 612 | sessionStorage.setItem('recorded_actions', json_rec_act);
|
607 | 613 | });
|
608 | 614 | document.body.addEventListener('contextmenu', function (event) {
|
609 |
| - if (typeof document.recorded_actions === 'undefined') |
610 |
| - reset_recorder_state(); |
611 |
| - if (sessionStorage.getItem('pause_recorder') === 'yes') |
612 |
| - return; |
| 615 | + reset_if_recorder_undefined(); |
| 616 | + if (sessionStorage.getItem('pause_recorder') === 'yes') return; |
613 | 617 | const element = event.target;
|
614 | 618 | const selector = getBestSelector(element);
|
615 | 619 | ra_len = document.recorded_actions.length;
|
|
623 | 627 | }
|
624 | 628 | });
|
625 | 629 | document.body.addEventListener('keydown', function (event) {
|
626 |
| - if (typeof document.recorded_actions === 'undefined') |
627 |
| - reset_recorder_state(); |
628 |
| - if (sessionStorage.getItem('pause_recorder') === 'yes') |
629 |
| - return; |
| 630 | + reset_if_recorder_undefined(); |
| 631 | + if (sessionStorage.getItem('pause_recorder') === 'yes') return; |
630 | 632 | ra_len = document.recorded_actions.length;
|
631 | 633 | if (ra_len > 0 &&
|
632 | 634 | document.recorded_actions[ra_len-1][0] === 'mo_dn' &&
|
|
638 | 640 | }
|
639 | 641 | });
|
640 | 642 | document.body.addEventListener('keyup', function (event) {
|
641 |
| - if (typeof document.recorded_actions === 'undefined') |
642 |
| - reset_recorder_state(); |
| 643 | + reset_if_recorder_undefined(); |
643 | 644 | // Controls for Pausing & Resuming.
|
644 | 645 | pause_rec = sessionStorage.getItem('pause_recorder');
|
645 | 646 | if (event.key.toLowerCase() === 'escape' && pause_rec === 'no')
|
|
650 | 651 | console.log('The SeleniumBase Recorder has paused.');
|
651 | 652 | no_border = 'none';
|
652 | 653 | document.querySelector('body').style.border = no_border;
|
| 654 | + document.title = sessionStorage.getItem('recorder_title'); |
653 | 655 | }
|
654 | 656 | else if ((event.key === '`' || event.key === '~') && pause_rec === 'yes')
|
655 | 657 | {
|
|
678 | 680 | red_border = 'thick solid #EE3344';
|
679 | 681 | document.querySelector('body').style.border = red_border;
|
680 | 682 | }
|
681 |
| - // Continue after checking for pause/resume controls. |
682 |
| - if (sessionStorage.getItem('pause_recorder') === 'yes') |
683 |
| - return; |
| 683 | + // After checking for pause/resume controls. |
| 684 | + if (sessionStorage.getItem('pause_recorder') === 'yes') return; |
684 | 685 | const d_now = Date.now();
|
685 | 686 | const element = event.target;
|
686 | 687 | const selector = getBestSelector(element);
|
|
0 commit comments