@@ -316,10 +316,18 @@ def click(
316
316
self .driver , selector , by , timeout = timeout
317
317
)
318
318
element .click ()
319
- if self .recorder_mode :
320
- latest_window_count = len (self .driver .window_handles )
321
- if latest_window_count > pre_window_count :
322
- self .switch_to_newest_window ()
319
+ latest_window_count = len (self .driver .window_handles )
320
+ if (
321
+ latest_window_count > pre_window_count
322
+ and (
323
+ self .recorder_mode
324
+ or (
325
+ settings .SWITCH_TO_NEW_TABS_ON_CLICK
326
+ and self .driver .current_url == pre_action_url
327
+ )
328
+ )
329
+ ):
330
+ self .switch_to_newest_window ()
323
331
if settings .WAIT_FOR_RSC_ON_CLICKS :
324
332
self .wait_for_ready_state_complete ()
325
333
if self .demo_mode :
@@ -3721,6 +3729,20 @@ def js_click(
3721
3729
else :
3722
3730
click_script = """jQuery('%s').click();""" % css_selector
3723
3731
self .safe_execute_script (click_script )
3732
+ if self .recorder_mode and action :
3733
+ self .__extra_actions .append (action )
3734
+ latest_window_count = len (self .driver .window_handles )
3735
+ if (
3736
+ latest_window_count > pre_window_count
3737
+ and (
3738
+ self .recorder_mode
3739
+ or (
3740
+ settings .SWITCH_TO_NEW_TABS_ON_CLICK
3741
+ and self .driver .current_url == pre_action_url
3742
+ )
3743
+ )
3744
+ ):
3745
+ self .switch_to_newest_window ()
3724
3746
self .wait_for_ready_state_complete ()
3725
3747
self .__demo_mode_pause_if_active ()
3726
3748
@@ -9862,6 +9884,10 @@ def setUp(self, masterqa_mode=False):
9862
9884
# Only filled when Recorder Mode is enabled
9863
9885
sb_config ._recorded_actions = {}
9864
9886
9887
+ if not hasattr (settings , "SWITCH_TO_NEW_TABS_ON_CLICK" ):
9888
+ # If using an older settings file, set the new definitions manually
9889
+ settings .SWITCH_TO_NEW_TABS_ON_CLICK = True
9890
+
9865
9891
# Parse the settings file
9866
9892
if self .settings_file :
9867
9893
from seleniumbase .core import settings_parser
0 commit comments