seleniumbase 4.39.0__py3-none-any.whl → 4.39.2__py3-none-any.whl

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.
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.39.0"
2
+ __version__ = "4.39.2"
@@ -192,8 +192,9 @@ def main():
192
192
  elif "'" not in start_page:
193
193
  used_sp = "'%s'" % start_page
194
194
  data.append(
195
- " self.uc_open_with_disconnect(\n"
196
- " %s\n"
195
+ " self.activate_cdp_mode(\n"
196
+ " %s,\n"
197
+ " recorder=True,\n"
197
198
  " )" % used_sp
198
199
  )
199
200
  else:
@@ -108,7 +108,9 @@ def make_driver_executable_if_not(driver_path):
108
108
  shared_utils.make_executable(driver_path)
109
109
 
110
110
 
111
- def extend_driver(driver, proxy_auth=False, use_uc=True):
111
+ def extend_driver(
112
+ driver, proxy_auth=False, use_uc=True, recorder_ext=False
113
+ ):
112
114
  # Extend the driver with new methods
113
115
  driver.default_find_element = driver.find_element
114
116
  driver.default_find_elements = driver.find_elements
@@ -234,6 +236,14 @@ def extend_driver(driver, proxy_auth=False, use_uc=True):
234
236
  driver.switch_to_tab = DM.switch_to_tab
235
237
  driver.switch_to_frame = DM.switch_to_frame
236
238
  driver.reset_window_size = DM.reset_window_size
239
+ if recorder_ext:
240
+ from seleniumbase.js_code.recorder_js import recorder_js
241
+ recorder_code = (
242
+ """window.onload = function() { %s };""" % recorder_js
243
+ )
244
+ driver.execute_cdp_cmd(
245
+ "Page.addScriptToEvaluateOnNewDocument", {"source": recorder_code}
246
+ )
237
247
  if hasattr(driver, "proxy"):
238
248
  driver.set_wire_proxy = DM.set_wire_proxy
239
249
  if proxy_auth:
@@ -2159,6 +2169,9 @@ def _set_chrome_options(
2159
2169
  prefs["profile.default_content_setting_values.automatic_downloads"] = 1
2160
2170
  if locale_code:
2161
2171
  prefs["intl.accept_languages"] = locale_code
2172
+ sb_config._cdp_locale = locale_code
2173
+ else:
2174
+ sb_config._cdp_locale = None
2162
2175
  if block_images:
2163
2176
  prefs["profile.managed_default_content_settings.images"] = 2
2164
2177
  if disable_cookies:
@@ -2542,6 +2555,7 @@ def _set_chrome_options(
2542
2555
  included_disabled_features.append("PrivacySandboxSettings4")
2543
2556
  included_disabled_features.append("SidePanelPinning")
2544
2557
  included_disabled_features.append("UserAgentClientHint")
2558
+ included_disabled_features.append("DisableLoadExtensionCommandLineSwitch")
2545
2559
  for item in extra_disabled_features:
2546
2560
  if item not in included_disabled_features:
2547
2561
  included_disabled_features.append(item)
@@ -2819,6 +2833,8 @@ def get_driver(
2819
2833
  if headless2 and browser_name == constants.Browser.FIREFOX:
2820
2834
  headless2 = False # Only for Chromium
2821
2835
  headless = True
2836
+ if binary_location and isinstance(binary_location, str):
2837
+ binary_location = binary_location.strip()
2822
2838
  if (
2823
2839
  is_using_uc(undetectable, browser_name)
2824
2840
  and binary_location
@@ -3014,6 +3030,8 @@ def get_driver(
3014
3030
  proxy_pass = None
3015
3031
  proxy_scheme = "http"
3016
3032
  if proxy_string:
3033
+ # (The code below was for the Chrome 137 extension fix)
3034
+ # sb_config._cdp_proxy = proxy_string
3017
3035
  username_and_password = None
3018
3036
  if "@" in proxy_string:
3019
3037
  # Format => username:password@hostname:port
@@ -4450,6 +4468,9 @@ def get_local_driver(
4450
4468
  included_disabled_features.append("PrivacySandboxSettings4")
4451
4469
  included_disabled_features.append("SidePanelPinning")
4452
4470
  included_disabled_features.append("UserAgentClientHint")
4471
+ included_disabled_features.append(
4472
+ "DisableLoadExtensionCommandLineSwitch"
4473
+ )
4453
4474
  for item in extra_disabled_features:
4454
4475
  if item not in included_disabled_features:
4455
4476
  included_disabled_features.append(item)
@@ -5328,7 +5349,9 @@ def get_local_driver(
5328
5349
  driver = webdriver.Chrome(
5329
5350
  service=service, options=chrome_options
5330
5351
  )
5331
- return extend_driver(driver, proxy_auth, use_uc)
5352
+ return extend_driver(
5353
+ driver, proxy_auth, use_uc, recorder_ext
5354
+ )
5332
5355
  if not auto_upgrade_chromedriver:
5333
5356
  raise # Not an obvious fix.
5334
5357
  else:
@@ -5580,11 +5603,15 @@ def get_local_driver(
5580
5603
  'Emulation.setDeviceMetricsOverride',
5581
5604
  set_device_metrics_override
5582
5605
  )
5583
- return extend_driver(driver, proxy_auth, use_uc)
5606
+ return extend_driver(
5607
+ driver, proxy_auth, use_uc, recorder_ext
5608
+ )
5584
5609
  else: # Running headless on Linux (and not using --uc)
5585
5610
  try:
5586
5611
  driver = webdriver.Chrome(options=chrome_options)
5587
- return extend_driver(driver, proxy_auth, use_uc)
5612
+ return extend_driver(
5613
+ driver, proxy_auth, use_uc, recorder_ext
5614
+ )
5588
5615
  except Exception as e:
5589
5616
  if not hasattr(e, "msg"):
5590
5617
  raise
@@ -5606,7 +5633,9 @@ def get_local_driver(
5606
5633
  driver = webdriver.Chrome(
5607
5634
  service=service, options=chrome_options
5608
5635
  )
5609
- return extend_driver(driver, proxy_auth, use_uc)
5636
+ return extend_driver(
5637
+ driver, proxy_auth, use_uc, recorder_ext
5638
+ )
5610
5639
  mcv = None # Major Chrome Version
5611
5640
  if "Current browser version is " in e.msg:
5612
5641
  line = e.msg.split("Current browser version is ")[1]
@@ -5649,7 +5678,9 @@ def get_local_driver(
5649
5678
  service=service,
5650
5679
  options=chrome_options,
5651
5680
  )
5652
- return extend_driver(driver, proxy_auth, use_uc)
5681
+ return extend_driver(
5682
+ driver, proxy_auth, use_uc, recorder_ext
5683
+ )
5653
5684
  # Use the virtual display on Linux during headless errors
5654
5685
  logging.debug(
5655
5686
  "\nWarning: Chrome failed to launch in"
@@ -5667,7 +5698,9 @@ def get_local_driver(
5667
5698
  driver = webdriver.Chrome(
5668
5699
  service=service, options=chrome_options
5669
5700
  )
5670
- return extend_driver(driver, proxy_auth, use_uc)
5701
+ return extend_driver(
5702
+ driver, proxy_auth, use_uc, recorder_ext
5703
+ )
5671
5704
  except Exception as original_exception:
5672
5705
  if use_uc:
5673
5706
  raise
@@ -5677,7 +5710,9 @@ def get_local_driver(
5677
5710
  driver = webdriver.Chrome(
5678
5711
  service=service, options=chrome_options
5679
5712
  )
5680
- return extend_driver(driver, proxy_auth, use_uc)
5713
+ return extend_driver(
5714
+ driver, proxy_auth, use_uc, recorder_ext
5715
+ )
5681
5716
  if user_data_dir:
5682
5717
  print("\nUnable to set user_data_dir while starting Chrome!\n")
5683
5718
  raise
@@ -5704,7 +5739,9 @@ def get_local_driver(
5704
5739
  )
5705
5740
  try:
5706
5741
  driver = webdriver.Chrome(service=service)
5707
- return extend_driver(driver, proxy_auth, use_uc)
5742
+ return extend_driver(
5743
+ driver, proxy_auth, use_uc, recorder_ext
5744
+ )
5708
5745
  except Exception:
5709
5746
  raise original_exception
5710
5747
  else:
@@ -1,5 +1,6 @@
1
1
  """Add new methods to extend the driver"""
2
2
  from contextlib import suppress
3
+ from selenium.webdriver.remote.webdriver import WebDriver
3
4
  from selenium.webdriver.remote.webelement import WebElement
4
5
  from seleniumbase.config import settings
5
6
  from seleniumbase.fixtures import js_utils
@@ -8,7 +9,7 @@ from seleniumbase.fixtures import page_utils
8
9
  from seleniumbase.fixtures import shared_utils
9
10
 
10
11
 
11
- class DriverMethods():
12
+ class DriverMethods(WebDriver):
12
13
  def __init__(self, driver):
13
14
  self.driver = driver
14
15
 
Binary file
@@ -38,6 +38,7 @@ driver.get("https://google.com/ncr")
38
38
  """
39
39
  import os
40
40
  import sys
41
+ from seleniumbase.core import sb_driver
41
42
 
42
43
 
43
44
  class DriverContext():
@@ -139,7 +140,7 @@ def Driver(
139
140
  pls=None, # Shortcut / Duplicate of "page_load_strategy".
140
141
  cft=None, # Use "Chrome for Testing"
141
142
  chs=None, # Use "Chrome-Headless-Shell"
142
- ):
143
+ ) -> sb_driver.DriverMethods:
143
144
  """
144
145
  * SeleniumBase Driver as a Python Context Manager or a returnable object. *
145
146
 
@@ -24,6 +24,8 @@ with SB(uc=True) as sb: # Many args! Eg. SB(browser="edge")
24
24
  #########################################
25
25
  """
26
26
  from contextlib import contextmanager, suppress
27
+ from typing import Any, Generator
28
+ from seleniumbase import BaseCase
27
29
 
28
30
 
29
31
  @contextmanager # Usage: -> ``with SB() as sb:``
@@ -133,7 +135,7 @@ def SB(
133
135
  highlights=None, # Number of highlight animations for Demo Mode actions.
134
136
  interval=None, # SECONDS (Autoplay interval for SB Slides & Tour steps.)
135
137
  time_limit=None, # SECONDS (Safely fail tests that exceed the time limit.)
136
- ):
138
+ ) -> Generator[BaseCase, Any, None]:
137
139
  """
138
140
  * SeleniumBase as a Python Context Manager *
139
141
 
@@ -263,7 +265,6 @@ def SB(
263
265
  import sys
264
266
  import time
265
267
  import traceback
266
- from seleniumbase import BaseCase
267
268
  from seleniumbase import config as sb_config
268
269
  from seleniumbase.config import settings
269
270
  from seleniumbase.fixtures import constants
@@ -292,6 +292,7 @@ class Browser:
292
292
  _cdp_locale = None
293
293
  _cdp_platform = None
294
294
  _cdp_geolocation = None
295
+ _cdp_recorder = None
295
296
  if (
296
297
  hasattr(sb_config, "_cdp_timezone") and sb_config._cdp_timezone
297
298
  ):
@@ -322,6 +323,8 @@ class Browser:
322
323
  _cdp_locale = kwargs["locale"]
323
324
  elif "lang" in kwargs:
324
325
  _cdp_locale = kwargs["lang"]
326
+ elif "locale_code" in kwargs:
327
+ _cdp_locale = kwargs["locale_code"]
325
328
  if "platform" in kwargs:
326
329
  _cdp_platform = kwargs["platform"]
327
330
  elif "plat" in kwargs:
@@ -330,9 +333,13 @@ class Browser:
330
333
  _cdp_geolocation = kwargs["geolocation"]
331
334
  elif "geoloc" in kwargs:
332
335
  _cdp_geolocation = kwargs["geoloc"]
336
+ if "recorder" in kwargs:
337
+ _cdp_recorder = kwargs["recorder"]
333
338
  if _cdp_timezone:
334
339
  await connection.send(cdp.page.navigate("about:blank"))
335
340
  await connection.set_timezone(_cdp_timezone)
341
+ if _cdp_locale:
342
+ await connection.set_locale(_cdp_locale)
336
343
  if _cdp_user_agent or _cdp_locale or _cdp_platform:
337
344
  await connection.send(cdp.page.navigate("about:blank"))
338
345
  await connection.set_user_agent(
@@ -344,9 +351,37 @@ class Browser:
344
351
  await connection.send(cdp.page.navigate("about:blank"))
345
352
  await connection.set_geolocation(_cdp_geolocation)
346
353
  # Use the tab to navigate to new url
354
+ if (
355
+ hasattr(sb_config, "_cdp_proxy")
356
+ and "@" in sb_config._cdp_proxy
357
+ and sb_config._cdp_proxy
358
+ and "auth" not in kwargs
359
+ ):
360
+ username_and_password = sb_config._cdp_proxy.split("@")[0]
361
+ proxy_user = username_and_password.split(":")[0]
362
+ proxy_pass = username_and_password.split(":")[1]
363
+ await connection.set_auth(
364
+ proxy_user, proxy_pass, self.tabs[0]
365
+ )
366
+ time.sleep(0.25)
367
+ elif "auth" in kwargs and kwargs["auth"] and ":" in kwargs["auth"]:
368
+ username_and_password = kwargs["auth"]
369
+ proxy_user = username_and_password.split(":")[0]
370
+ proxy_pass = username_and_password.split(":")[1]
371
+ await connection.set_auth(
372
+ proxy_user, proxy_pass, self.tabs[0]
373
+ )
374
+ time.sleep(0.25)
347
375
  frame_id, loader_id, *_ = await connection.send(
348
376
  cdp.page.navigate(url)
349
377
  )
378
+ if _cdp_recorder:
379
+ pass # (The code below was for the Chrome 137 extension fix)
380
+ '''from seleniumbase.js_code.recorder_js import recorder_js
381
+ recorder_code = (
382
+ """window.onload = function() { %s };""" % recorder_js
383
+ )
384
+ await connection.send(cdp.runtime.evaluate(recorder_code))'''
350
385
  # Update the frame_id on the tab
351
386
  connection.frame_id = frame_id
352
387
  connection.browser = self
@@ -360,16 +360,16 @@ async def start(
360
360
  except Exception:
361
361
  time.sleep(0.15)
362
362
  driver = await Browser.create(config)
363
- if proxy and "@" in str(proxy):
364
- time.sleep(0.15)
363
+ if proxy:
364
+ sb_config._cdp_proxy = proxy
365
+ if "@" in str(proxy):
366
+ time.sleep(0.15)
365
367
  if lang:
366
368
  sb_config._cdp_locale = lang
367
369
  elif "locale" in kwargs:
368
370
  sb_config._cdp_locale = kwargs["locale"]
369
371
  elif "locale_code" in kwargs:
370
372
  sb_config._cdp_locale = kwargs["locale_code"]
371
- else:
372
- sb_config._cdp_locale = None
373
373
  if tzone:
374
374
  sb_config._cdp_timezone = tzone
375
375
  elif "timezone" in kwargs:
@@ -402,10 +402,14 @@ async def start_async(*args, **kwargs) -> Browser:
402
402
  binary_location = None
403
403
  if "browser_executable_path" in kwargs:
404
404
  binary_location = kwargs["browser_executable_path"]
405
+ if binary_location and isinstance(binary_location, str):
406
+ binary_location = binary_location.strip()
405
407
  else:
406
408
  binary_location = detect_b_ver.get_binary_location("google-chrome")
407
- if binary_location and not os.path.exists(binary_location):
408
- binary_location = None
409
+ if binary_location and isinstance(binary_location, str):
410
+ binary_location = binary_location.strip()
411
+ if not os.path.exists(binary_location):
412
+ binary_location = None
409
413
  if (
410
414
  shared_utils.is_chrome_130_or_newer(binary_location)
411
415
  and "user_data_dir" in kwargs
@@ -438,10 +442,14 @@ def start_sync(*args, **kwargs) -> Browser:
438
442
  binary_location = None
439
443
  if "browser_executable_path" in kwargs:
440
444
  binary_location = kwargs["browser_executable_path"]
445
+ if binary_location and isinstance(binary_location, str):
446
+ binary_location = binary_location.strip()
441
447
  else:
442
448
  binary_location = detect_b_ver.get_binary_location("google-chrome")
443
- if binary_location and not os.path.exists(binary_location):
444
- binary_location = None
449
+ if binary_location and isinstance(binary_location, str):
450
+ binary_location = binary_location.strip()
451
+ if not os.path.exists(binary_location):
452
+ binary_location = None
445
453
  if (
446
454
  shared_utils.is_chrome_130_or_newer(binary_location)
447
455
  and "user_data_dir" in kwargs
@@ -144,7 +144,8 @@ class Config:
144
144
  "--disable-features=IsolateOrigins,site-per-process,Translate,"
145
145
  "InsecureDownloadWarnings,DownloadBubble,DownloadBubbleV2,"
146
146
  "OptimizationTargetPrediction,OptimizationGuideModelDownloading,"
147
- "SidePanelPinning,UserAgentClientHint,PrivacySandboxSettings4",
147
+ "SidePanelPinning,UserAgentClientHint,PrivacySandboxSettings4,"
148
+ "DisableLoadExtensionCommandLineSwitch",
148
149
  ]
149
150
 
150
151
  @property
@@ -347,6 +347,7 @@ class Connection(metaclass=CantTouchThis):
347
347
  async def set_locale(self, locale: Optional[str] = None):
348
348
  """Sets the Language Locale code via set_user_agent_override."""
349
349
  await self.set_user_agent(user_agent="", accept_language=locale)
350
+ await self.send(cdp.emulation.set_locale_override(locale))
350
351
 
351
352
  async def set_timezone(self, timezone: Optional[str] = None):
352
353
  """Sets the Timezone via set_timezone_override."""
@@ -378,6 +379,36 @@ class Connection(metaclass=CantTouchThis):
378
379
  accuracy=100,
379
380
  ))
380
381
 
382
+ async def set_auth(self, username, password, tab):
383
+ async def auth_challenge_handler(event: cdp.fetch.AuthRequired):
384
+ await tab.send(
385
+ cdp.fetch.continue_with_auth(
386
+ request_id=event.request_id,
387
+ auth_challenge_response=cdp.fetch.AuthChallengeResponse(
388
+ response="ProvideCredentials",
389
+ username=username,
390
+ password=password,
391
+ ),
392
+ )
393
+ )
394
+
395
+ async def req_paused(event: cdp.fetch.RequestPaused):
396
+ await tab.send(
397
+ cdp.fetch.continue_request(request_id=event.request_id)
398
+ )
399
+
400
+ tab.add_handler(
401
+ cdp.fetch.RequestPaused,
402
+ lambda event: asyncio.create_task(req_paused(event)),
403
+ )
404
+
405
+ tab.add_handler(
406
+ cdp.fetch.AuthRequired,
407
+ lambda event: asyncio.create_task(auth_challenge_handler(event)),
408
+ )
409
+
410
+ await tab.send(cdp.fetch.enable(handle_auth_requests=True))
411
+
381
412
  def __getattr__(self, item):
382
413
  """:meta private:"""
383
414
  try:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.39.0
3
+ Version: 4.39.2
4
4
  Summary: A complete web automation framework for end-to-end testing.
5
5
  Home-page: https://github.com/seleniumbase/SeleniumBase
6
6
  Author: Michael Mintz
@@ -121,7 +121,8 @@ Requires-Dist: pytest-metadata==3.1.1
121
121
  Requires-Dist: pytest-ordering==0.6
122
122
  Requires-Dist: pytest-rerunfailures==14.0; python_version < "3.9"
123
123
  Requires-Dist: pytest-rerunfailures==15.1; python_version >= "3.9"
124
- Requires-Dist: pytest-xdist==3.6.1
124
+ Requires-Dist: pytest-xdist==3.6.1; python_version < "3.9"
125
+ Requires-Dist: pytest-xdist==3.7.0; python_version >= "3.9"
125
126
  Requires-Dist: parameterized==0.9.0
126
127
  Requires-Dist: behave==1.2.6
127
128
  Requires-Dist: soupsieve==2.7
@@ -158,7 +159,7 @@ Provides-Extra: pdfminer
158
159
  Requires-Dist: pdfminer.six==20250324; python_version < "3.9" and extra == "pdfminer"
159
160
  Requires-Dist: pdfminer.six==20250506; python_version >= "3.9" and extra == "pdfminer"
160
161
  Requires-Dist: cryptography==39.0.2; python_version < "3.9" and extra == "pdfminer"
161
- Requires-Dist: cryptography==45.0.2; python_version >= "3.9" and extra == "pdfminer"
162
+ Requires-Dist: cryptography==45.0.3; python_version >= "3.9" and extra == "pdfminer"
162
163
  Requires-Dist: cffi==1.17.1; extra == "pdfminer"
163
164
  Requires-Dist: pycparser==2.22; extra == "pdfminer"
164
165
  Provides-Extra: pillow
@@ -3,7 +3,7 @@ sbase/__main__.py,sha256=G0bVB1-DM4PGwQ1KyOupaWCs4ePbChZNNWuX2htim5U,647
3
3
  sbase/steps.py,sha256=_WvAjydKqZfTdnZW9LPKkRty-g-lfdUPmLqnZj6ulcs,43013
4
4
  seleniumbase/__init__.py,sha256=JFEY9P5QJqsa1M6ghzLMH2eIPQyh85iglCaQwg8Y8z4,2498
5
5
  seleniumbase/__main__.py,sha256=dn1p6dgCchmcH1zzTzzQvFwwdQQqnTGH6ULV9m4hv24,654
6
- seleniumbase/__version__.py,sha256=k8wTKBJCIX9jwhQ94xJBQTbrgOxlmuxwdJuKlB94tv4,46
6
+ seleniumbase/__version__.py,sha256=lKg8cpa3sHnLx8LvY_0AE9MEapr-ETW6w2um2b_KvJA,46
7
7
  seleniumbase/behave/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  seleniumbase/behave/behave_helper.py,sha256=elkl8P9eLulRAioLstE9baYNM9N_PHBmAOcajX-pH_Y,24198
9
9
  seleniumbase/behave/behave_sb.py,sha256=bbbfa8ID6nMnmrVJ7G-014uOj5PE4B8IROZB2WXSQ8I,59172
@@ -30,13 +30,13 @@ seleniumbase/console_scripts/sb_mkchart.py,sha256=ep9g-9CSIwaOJKVxhB3xjRQpfsuApy
30
30
  seleniumbase/console_scripts/sb_mkdir.py,sha256=iFN6ZMOgmH_GAvEuvzYltWuYiS3PRFQcL5fJIj1yX_Y,30897
31
31
  seleniumbase/console_scripts/sb_mkfile.py,sha256=OWYd4yFccmjrd-gNn1t1una-HDRU2_N2-r4Tg3nHsj0,17744
32
32
  seleniumbase/console_scripts/sb_mkpres.py,sha256=EWFRVacjYTX49y-fEiYTZacM9_01IxuuaO4nMjHrIGo,11015
33
- seleniumbase/console_scripts/sb_mkrec.py,sha256=PrizjTmyrROYPO0yDm-zQS3QSfsZNeAmcJKKUvfgLhc,11966
33
+ seleniumbase/console_scripts/sb_mkrec.py,sha256=E268227Q75ZHP1rGFoIY_6i6FzGxD_kWmKm7QMntpW4,12012
34
34
  seleniumbase/console_scripts/sb_objectify.py,sha256=nGxtVGL_nHj0bLHvk86znV3EABsE2_tjF74lgto1_Mk,122020
35
35
  seleniumbase/console_scripts/sb_print.py,sha256=tNy-bMDgwHJO3bZxMpmo9weSE8uhbH0CUpP4VZqWxvI,30558
36
36
  seleniumbase/console_scripts/sb_recorder.py,sha256=DH-n2fN7N9qyHMl7wjtn8MiliBgfw-1kwgmfg1GUuhk,10772
37
37
  seleniumbase/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
38
  seleniumbase/core/application_manager.py,sha256=e_0sjtI8cjY5BNyZj1QBR0j6_oCScxGmSXYEpcYwuZE,576
39
- seleniumbase/core/browser_launcher.py,sha256=8t9wHj7hiGrTC3SHlPi7AhTAX8y9XnV5Y6bgLWFkuVE,241559
39
+ seleniumbase/core/browser_launcher.py,sha256=EwMup2zhgUGslHsjoeMPbKSD5-W92M2hKO6RiNqL06Q,242895
40
40
  seleniumbase/core/capabilities_parser.py,sha256=meIS2uHapTCq2ldfNAToC7r0cKmZDRXuYNKExM1GHDY,6038
41
41
  seleniumbase/core/colored_traceback.py,sha256=DrRWfg7XEnKcgY59Xj7Jdk09H-XqHYBSUpB-DiZt6iY,2020
42
42
  seleniumbase/core/create_db_tables.sql,sha256=VWPtrdiW_HQ6yETHjqTu-VIrTwvd8I8o1NfBeaVSHpU,972
@@ -51,7 +51,7 @@ seleniumbase/core/recorder_helper.py,sha256=fNGjbapXmEsht54x1o6Igk198QdnPxDDnjUO
51
51
  seleniumbase/core/report_helper.py,sha256=AIl6Qava2yW1uSzbLpJBlPlYDz0KE-rVhogh8hsGWBo,12201
52
52
  seleniumbase/core/s3_manager.py,sha256=z_4qx2jI_gtK5r3niGXgEOBpfMUicUCOciowai50MP4,3529
53
53
  seleniumbase/core/sb_cdp.py,sha256=zgkVXOhwf94NGdsUO0eM8yVUS3s5FzSuAPJNsz3lrZo,86452
54
- seleniumbase/core/sb_driver.py,sha256=yvTDRblBzG6bDX7XcLiAA6QcBelSJj_HHL_04lcfeeE,13760
54
+ seleniumbase/core/sb_driver.py,sha256=yUdS9_9OXTVaWzp1qY7msvnsvCK8X3FIcxMixb0BuBE,13827
55
55
  seleniumbase/core/session_helper.py,sha256=s9zD3PVZEWVzG2h81cCUskbNWLfdjC_LwwQjKptHCak,558
56
56
  seleniumbase/core/settings_parser.py,sha256=gqVohHVlE_5L5Cqe2L24uYrRzvoK-saX8E_Df7_-_3I,7609
57
57
  seleniumbase/core/style_sheet.py,sha256=5qYN5GLk4gkwg7nqp3h0XH5YXRijANzKDuEdalzccuw,11714
@@ -62,7 +62,7 @@ seleniumbase/drivers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
62
62
  seleniumbase/extensions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
63
  seleniumbase/extensions/ad_block.zip,sha256=LTlaOYUs6a1Zu4op64pLoDEqYKJb8zHq_Y0PsBIIqCk,1454
64
64
  seleniumbase/extensions/disable_csp.zip,sha256=5RvomXnm2PdivUVcxTV6jfvD8WhTEsQYHaQZe7nk9Yc,20014
65
- seleniumbase/extensions/recorder.zip,sha256=OOyzF-Ize2cSRu1CqhzSAq5vusI9hqLLd2OIApUHesI,11918
65
+ seleniumbase/extensions/recorder.zip,sha256=JEE_FVEvlS63cFQbVLEroIyPSS91nWCDL0MhjVrmIpk,11813
66
66
  seleniumbase/extensions/sbase_ext.zip,sha256=3s1N8zrVaMz8RQEOIoBzC3KDjtmHwVZRvVsX25Odr_s,8175
67
67
  seleniumbase/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
68
  seleniumbase/fixtures/base_case.py,sha256=zlF10aFjJdRUS6nT9ksvcXPdyD7A_mlFyAgEuQkVRj4,727097
@@ -86,11 +86,11 @@ seleniumbase/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
86
86
  seleniumbase/plugins/base_plugin.py,sha256=ItLgtaZmu_363iycy8BNX0Do5LyIWGiTMLW6krXM-WQ,14748
87
87
  seleniumbase/plugins/basic_test_info.py,sha256=8ov6n417gPbqqvrlT4zrch7l2XcRt-GF2ny6rR9AMWk,2108
88
88
  seleniumbase/plugins/db_reporting_plugin.py,sha256=En09qUCoojrk9-vbcnsoHdSELoGmag2GDIyu3jTiJas,7331
89
- seleniumbase/plugins/driver_manager.py,sha256=1l4fxISvGV62gfDxp3yfYE2zz4WKJFLE0tGnVZIDG1g,36491
89
+ seleniumbase/plugins/driver_manager.py,sha256=VSYQgDDA2t34gi-3qPkw5Ef9SX8sVQX3RETHOihyKHc,36558
90
90
  seleniumbase/plugins/page_source.py,sha256=loTnXxOj4kxEukuTZEiGyvKBhY3KDVDMnNlHHheTBDE,1889
91
91
  seleniumbase/plugins/pytest_plugin.py,sha256=952AIyaH-PdmNksoeXjzhXxoc8Z53yV-WPjlrHhp2OM,108382
92
92
  seleniumbase/plugins/s3_logging_plugin.py,sha256=WDfertQgGOW_SRJpFMaekYD6vBVW9VO62POtXXy2HCM,2319
93
- seleniumbase/plugins/sb_manager.py,sha256=o1cWTR3ARb9AAa1bljpsmS89lB-pt0TSEVz1lUpzq8U,58018
93
+ seleniumbase/plugins/sb_manager.py,sha256=ulTDorccan06eVYtSqlX26EFKXmS0gCY0huJ67Q5gTY,58082
94
94
  seleniumbase/plugins/screen_shots.py,sha256=1hrXw-hzuZ1BR6Yh7AyWX2ABnvnP73-RCbwdz958gj4,1127
95
95
  seleniumbase/plugins/selenium_plugin.py,sha256=y0eNco8T4KgGLProLPHPLw479QH5lRms4wqwOnTgkSc,60081
96
96
  seleniumbase/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -115,10 +115,10 @@ seleniumbase/undetected/reactor.py,sha256=NropaXcO54pzmDq6quR27qPJxab6636H7LRAaq
115
115
  seleniumbase/undetected/webelement.py,sha256=OOpUYbEiOG52KsYYyuDW9tYLdA2SMnukvwQHUdPVn9E,1389
116
116
  seleniumbase/undetected/cdp_driver/__init__.py,sha256=Ga9alwuaZZy4_XOShc0HjgFnNqpPdrcbjAicz5gE7a4,215
117
117
  seleniumbase/undetected/cdp_driver/_contradict.py,sha256=lP4b0h5quAy573ETn_TBbYV889cL1AuPLVInpJ0ZkiU,3183
118
- seleniumbase/undetected/cdp_driver/browser.py,sha256=v7SO8zVo4Ru8Rq5eJekMWwPO2h4kBGvb5he06_7Do_M,32858
119
- seleniumbase/undetected/cdp_driver/cdp_util.py,sha256=c4z2ltGeAKoLE8eyviJUxEM1GWK22qKPRDalVZcTuXQ,24357
120
- seleniumbase/undetected/cdp_driver/config.py,sha256=t8KV1Vqa5SQRBq3-gjkHHmj9h85AplAM01asO3AWufs,12507
121
- seleniumbase/undetected/cdp_driver/connection.py,sha256=d5G4MkCaDCv8ErtOCPB5hnr18kIZMuaGx8o0DKS0HNY,24559
118
+ seleniumbase/undetected/cdp_driver/browser.py,sha256=5XVzfA6JQqh5q5ShKgSwjebB9n598leKZ4EYfG49bgs,34565
119
+ seleniumbase/undetected/cdp_driver/cdp_util.py,sha256=_DoF4EE1osbzSb3do-sIrMnL_Gse2S2vs3NUAuhGSAI,24819
120
+ seleniumbase/undetected/cdp_driver/config.py,sha256=4-nUkEf7JSuOdFMNd6XmJnFucZrA59-kH1FUMxDcgFU,12561
121
+ seleniumbase/undetected/cdp_driver/connection.py,sha256=WgZ4QamXSdTzP4Xfgkn8mxv-JFivMG6hqbyHy2_LQlg,25717
122
122
  seleniumbase/undetected/cdp_driver/element.py,sha256=FIC6v7OmumLCT-_vIc3H4oju_oBbaLpWJUJIKm2c_q4,40467
123
123
  seleniumbase/undetected/cdp_driver/tab.py,sha256=t7Ucn0pmm7imwdCM-5KmIJNU2MCeMuIl6G3T2VMrbxU,53170
124
124
  seleniumbase/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -135,9 +135,9 @@ seleniumbase/utilities/selenium_grid/start-grid-hub.bat,sha256=Ftq-GrAKRYH2ssDPr
135
135
  seleniumbase/utilities/selenium_grid/start-grid-hub.sh,sha256=KADv0RUHONLL2_I443QFK8PryBpDmKn5Gy0s4o0vDSM,106
136
136
  seleniumbase/utilities/selenium_ide/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
137
137
  seleniumbase/utilities/selenium_ide/convert_ide.py,sha256=pZFnqEJQEKZPyNFjkLD29s2HPQgCrWW9XJWpCPhWOoM,31691
138
- seleniumbase-4.39.0.dist-info/licenses/LICENSE,sha256=BRblZsX7HyPUjQmYTiyWr_e9tzWvmR3R4SFclM2R3W0,1085
139
- seleniumbase-4.39.0.dist-info/METADATA,sha256=JmYu6Qeu_rgAHY1uJRPKcbsRswnSeSnrAaR-kXo-R_g,87122
140
- seleniumbase-4.39.0.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
141
- seleniumbase-4.39.0.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
142
- seleniumbase-4.39.0.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
143
- seleniumbase-4.39.0.dist-info/RECORD,,
138
+ seleniumbase-4.39.2.dist-info/licenses/LICENSE,sha256=BRblZsX7HyPUjQmYTiyWr_e9tzWvmR3R4SFclM2R3W0,1085
139
+ seleniumbase-4.39.2.dist-info/METADATA,sha256=zpx8oqimtSYIkLI1km87q72UZwlGwX0xll23x7bCS5M,87206
140
+ seleniumbase-4.39.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
141
+ seleniumbase-4.39.2.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
142
+ seleniumbase-4.39.2.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
143
+ seleniumbase-4.39.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.8.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5