|
72 | 72 | -D enable-ws (Enable Web Security on Chromium-based browsers.)
|
73 | 73 | -D enable-sync (Enable "Chrome Sync".)
|
74 | 74 | -D uc | -D undetected (Use undetected-chromedriver to evade bot-detection)
|
75 |
| --D uc-cdp-events (Capture CDP events when running in "--undetected" mode.) |
| 75 | +-D uc-cdp-events (Capture CDP events when running in "-D undetected" mode) |
76 | 76 | -D remote-debug (Sync to Chrome Remote Debugger chrome://inspect/#devices)
|
77 | 77 | -D dashboard (Enable the SeleniumBase Dashboard. Saved at: dashboard.html)
|
78 | 78 | -D dash-title=STRING (Set the title shown for the generated dashboard.)
|
79 | 79 | -D enable-3d-apis (Enables WebGL and 3D APIs.)
|
80 |
| --D swiftshader (Use Chrome's "--use-gl=swiftshader" feature.) |
| 80 | +-D swiftshader (Use Chrome's SwiftShader Graphics Library.) |
81 | 81 | -D incognito (Enable Chrome's Incognito mode.)
|
82 | 82 | -D guest (Enable Chrome's Guest mode.)
|
83 | 83 | -D devtools (Open Chrome's DevTools when the browser opens.)
|
84 |
| --D reuse-session | -D rs (Reuse browser session between tests.) |
| 84 | +-D reuse-session | -D rs (Reuse browser session for all tests.) |
| 85 | +-D reuse-class-session | -D rcs (Reuse session for tests in class/feature) |
85 | 86 | -D crumbs (Delete all cookies between tests reusing a session.)
|
86 | 87 | -D disable-beforeunload (Disable the "beforeunload" event on Chrome.)
|
87 | 88 | -D window-size=WIDTH,HEIGHT (Set the browser's starting window size.)
|
|
103 | 104 | from seleniumbase.core import log_helper
|
104 | 105 | from seleniumbase.core import download_helper
|
105 | 106 | from seleniumbase.core import proxy_helper
|
| 107 | +from seleniumbase.core import session_helper |
106 | 108 | from seleniumbase.fixtures import constants
|
107 | 109 | from seleniumbase import config as sb_config
|
108 | 110 |
|
@@ -179,6 +181,7 @@ def get_configured_sb(context):
|
179 | 181 | sb.disable_gpu = False
|
180 | 182 | sb._multithreaded = False
|
181 | 183 | sb._reuse_session = False
|
| 184 | + sb._reuse_class_session = False |
182 | 185 | sb._crumbs = False
|
183 | 186 | sb._disable_beforeunload = False
|
184 | 187 | sb.visual_baseline = False
|
@@ -234,6 +237,7 @@ def get_configured_sb(context):
|
234 | 237 | sb_config._has_logs = None
|
235 | 238 | sb_config._has_exception = None
|
236 | 239 | sb_config.save_screenshot = None
|
| 240 | + sb_config.reuse_class_session = None |
237 | 241 |
|
238 | 242 | browsers = set() # To error if selecting more than one
|
239 | 243 | valid_browsers = constants.ValidBrowsers.valid_browsers
|
@@ -541,6 +545,13 @@ def get_configured_sb(context):
|
541 | 545 | if low_key in ["rs", "reuse-session", "reuse_session"]:
|
542 | 546 | sb._reuse_session = True
|
543 | 547 | continue
|
| 548 | + # Handle: -D rcs / rfs / reuse-class-session / reuse-feature-session |
| 549 | + if low_key in [ |
| 550 | + "rcs", "rfs", "reuse-class-session", "reuse-feature-session" |
| 551 | + ]: |
| 552 | + sb._reuse_session = True |
| 553 | + sb._reuse_class_session = True |
| 554 | + continue |
544 | 555 | # Handle: -D crumbs
|
545 | 556 | if low_key == "crumbs":
|
546 | 557 | sb._crumbs = True
|
@@ -870,6 +881,7 @@ def get_configured_sb(context):
|
870 | 881 | sb_config.window_size = sb.window_size
|
871 | 882 | sb_config.maximize_option = sb.maximize_option
|
872 | 883 | sb_config.xvfb = sb.xvfb
|
| 884 | + sb_config.reuse_class_session = sb._reuse_class_session |
873 | 885 | sb_config.save_screenshot = sb.save_screenshot_after_test
|
874 | 886 | sb_config.no_screenshot = sb.no_screenshot_after_test
|
875 | 887 | sb_config._has_logs = False
|
@@ -1256,6 +1268,7 @@ def before_all(context):
|
1256 | 1268 |
|
1257 | 1269 | def before_feature(context, feature):
|
1258 | 1270 | sb_config.behave_feature = feature
|
| 1271 | + session_helper.end_reused_class_session_as_needed() |
1259 | 1272 |
|
1260 | 1273 |
|
1261 | 1274 | def before_scenario(context, scenario):
|
@@ -1290,6 +1303,7 @@ def after_scenario(context, scenario):
|
1290 | 1303 |
|
1291 | 1304 | def after_feature(context, feature):
|
1292 | 1305 | sb_config.feature = feature
|
| 1306 | + session_helper.end_reused_class_session_as_needed() |
1293 | 1307 |
|
1294 | 1308 |
|
1295 | 1309 | def after_all(context):
|
|
0 commit comments