seleniumbase 4.39.0__py3-none-any.whl → 4.39.1__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.1"
@@ -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:
@@ -2542,6 +2552,7 @@ def _set_chrome_options(
2542
2552
  included_disabled_features.append("PrivacySandboxSettings4")
2543
2553
  included_disabled_features.append("SidePanelPinning")
2544
2554
  included_disabled_features.append("UserAgentClientHint")
2555
+ included_disabled_features.append("DisableLoadExtensionCommandLineSwitch")
2545
2556
  for item in extra_disabled_features:
2546
2557
  if item not in included_disabled_features:
2547
2558
  included_disabled_features.append(item)
@@ -2819,6 +2830,8 @@ def get_driver(
2819
2830
  if headless2 and browser_name == constants.Browser.FIREFOX:
2820
2831
  headless2 = False # Only for Chromium
2821
2832
  headless = True
2833
+ if binary_location and isinstance(binary_location, str):
2834
+ binary_location = binary_location.strip()
2822
2835
  if (
2823
2836
  is_using_uc(undetectable, browser_name)
2824
2837
  and binary_location
@@ -3014,6 +3027,8 @@ def get_driver(
3014
3027
  proxy_pass = None
3015
3028
  proxy_scheme = "http"
3016
3029
  if proxy_string:
3030
+ # (The code below was for the Chrome 137 extension fix)
3031
+ # sb_config._cdp_proxy = proxy_string
3017
3032
  username_and_password = None
3018
3033
  if "@" in proxy_string:
3019
3034
  # Format => username:password@hostname:port
@@ -4450,6 +4465,9 @@ def get_local_driver(
4450
4465
  included_disabled_features.append("PrivacySandboxSettings4")
4451
4466
  included_disabled_features.append("SidePanelPinning")
4452
4467
  included_disabled_features.append("UserAgentClientHint")
4468
+ included_disabled_features.append(
4469
+ "DisableLoadExtensionCommandLineSwitch"
4470
+ )
4453
4471
  for item in extra_disabled_features:
4454
4472
  if item not in included_disabled_features:
4455
4473
  included_disabled_features.append(item)
@@ -5328,7 +5346,9 @@ def get_local_driver(
5328
5346
  driver = webdriver.Chrome(
5329
5347
  service=service, options=chrome_options
5330
5348
  )
5331
- return extend_driver(driver, proxy_auth, use_uc)
5349
+ return extend_driver(
5350
+ driver, proxy_auth, use_uc, recorder_ext
5351
+ )
5332
5352
  if not auto_upgrade_chromedriver:
5333
5353
  raise # Not an obvious fix.
5334
5354
  else:
@@ -5580,11 +5600,15 @@ def get_local_driver(
5580
5600
  'Emulation.setDeviceMetricsOverride',
5581
5601
  set_device_metrics_override
5582
5602
  )
5583
- return extend_driver(driver, proxy_auth, use_uc)
5603
+ return extend_driver(
5604
+ driver, proxy_auth, use_uc, recorder_ext
5605
+ )
5584
5606
  else: # Running headless on Linux (and not using --uc)
5585
5607
  try:
5586
5608
  driver = webdriver.Chrome(options=chrome_options)
5587
- return extend_driver(driver, proxy_auth, use_uc)
5609
+ return extend_driver(
5610
+ driver, proxy_auth, use_uc, recorder_ext
5611
+ )
5588
5612
  except Exception as e:
5589
5613
  if not hasattr(e, "msg"):
5590
5614
  raise
@@ -5606,7 +5630,9 @@ def get_local_driver(
5606
5630
  driver = webdriver.Chrome(
5607
5631
  service=service, options=chrome_options
5608
5632
  )
5609
- return extend_driver(driver, proxy_auth, use_uc)
5633
+ return extend_driver(
5634
+ driver, proxy_auth, use_uc, recorder_ext
5635
+ )
5610
5636
  mcv = None # Major Chrome Version
5611
5637
  if "Current browser version is " in e.msg:
5612
5638
  line = e.msg.split("Current browser version is ")[1]
@@ -5649,7 +5675,9 @@ def get_local_driver(
5649
5675
  service=service,
5650
5676
  options=chrome_options,
5651
5677
  )
5652
- return extend_driver(driver, proxy_auth, use_uc)
5678
+ return extend_driver(
5679
+ driver, proxy_auth, use_uc, recorder_ext
5680
+ )
5653
5681
  # Use the virtual display on Linux during headless errors
5654
5682
  logging.debug(
5655
5683
  "\nWarning: Chrome failed to launch in"
@@ -5667,7 +5695,9 @@ def get_local_driver(
5667
5695
  driver = webdriver.Chrome(
5668
5696
  service=service, options=chrome_options
5669
5697
  )
5670
- return extend_driver(driver, proxy_auth, use_uc)
5698
+ return extend_driver(
5699
+ driver, proxy_auth, use_uc, recorder_ext
5700
+ )
5671
5701
  except Exception as original_exception:
5672
5702
  if use_uc:
5673
5703
  raise
@@ -5677,7 +5707,9 @@ def get_local_driver(
5677
5707
  driver = webdriver.Chrome(
5678
5708
  service=service, options=chrome_options
5679
5709
  )
5680
- return extend_driver(driver, proxy_auth, use_uc)
5710
+ return extend_driver(
5711
+ driver, proxy_auth, use_uc, recorder_ext
5712
+ )
5681
5713
  if user_data_dir:
5682
5714
  print("\nUnable to set user_data_dir while starting Chrome!\n")
5683
5715
  raise
@@ -5704,7 +5736,9 @@ def get_local_driver(
5704
5736
  )
5705
5737
  try:
5706
5738
  driver = webdriver.Chrome(service=service)
5707
- return extend_driver(driver, proxy_auth, use_uc)
5739
+ return extend_driver(
5740
+ driver, proxy_auth, use_uc, recorder_ext
5741
+ )
5708
5742
  except Exception:
5709
5743
  raise original_exception
5710
5744
  else:
Binary file
@@ -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
  ):
@@ -330,6 +331,8 @@ class Browser:
330
331
  _cdp_geolocation = kwargs["geolocation"]
331
332
  elif "geoloc" in kwargs:
332
333
  _cdp_geolocation = kwargs["geoloc"]
334
+ if "recorder" in kwargs:
335
+ _cdp_recorder = kwargs["recorder"]
333
336
  if _cdp_timezone:
334
337
  await connection.send(cdp.page.navigate("about:blank"))
335
338
  await connection.set_timezone(_cdp_timezone)
@@ -344,9 +347,37 @@ class Browser:
344
347
  await connection.send(cdp.page.navigate("about:blank"))
345
348
  await connection.set_geolocation(_cdp_geolocation)
346
349
  # Use the tab to navigate to new url
350
+ if (
351
+ hasattr(sb_config, "_cdp_proxy")
352
+ and "@" in sb_config._cdp_proxy
353
+ and sb_config._cdp_proxy
354
+ and "auth" not in kwargs
355
+ ):
356
+ username_and_password = sb_config._cdp_proxy.split("@")[0]
357
+ proxy_user = username_and_password.split(":")[0]
358
+ proxy_pass = username_and_password.split(":")[1]
359
+ await connection.set_auth(
360
+ proxy_user, proxy_pass, self.tabs[0]
361
+ )
362
+ time.sleep(0.25)
363
+ elif "auth" in kwargs and kwargs["auth"] and ":" in kwargs["auth"]:
364
+ username_and_password = kwargs["auth"]
365
+ proxy_user = username_and_password.split(":")[0]
366
+ proxy_pass = username_and_password.split(":")[1]
367
+ await connection.set_auth(
368
+ proxy_user, proxy_pass, self.tabs[0]
369
+ )
370
+ time.sleep(0.25)
347
371
  frame_id, loader_id, *_ = await connection.send(
348
372
  cdp.page.navigate(url)
349
373
  )
374
+ if _cdp_recorder:
375
+ pass # (The code below was for the Chrome 137 extension fix)
376
+ '''from seleniumbase.js_code.recorder_js import recorder_js
377
+ recorder_code = (
378
+ """window.onload = function() { %s };""" % recorder_js
379
+ )
380
+ await connection.send(cdp.runtime.evaluate(recorder_code))'''
350
381
  # Update the frame_id on the tab
351
382
  connection.frame_id = frame_id
352
383
  connection.browser = self
@@ -360,8 +360,10 @@ 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:
@@ -402,10 +404,14 @@ async def start_async(*args, **kwargs) -> Browser:
402
404
  binary_location = None
403
405
  if "browser_executable_path" in kwargs:
404
406
  binary_location = kwargs["browser_executable_path"]
407
+ if binary_location and isinstance(binary_location, str):
408
+ binary_location = binary_location.strip()
405
409
  else:
406
410
  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
411
+ if binary_location and isinstance(binary_location, str):
412
+ binary_location = binary_location.strip()
413
+ if not os.path.exists(binary_location):
414
+ binary_location = None
409
415
  if (
410
416
  shared_utils.is_chrome_130_or_newer(binary_location)
411
417
  and "user_data_dir" in kwargs
@@ -438,10 +444,14 @@ def start_sync(*args, **kwargs) -> Browser:
438
444
  binary_location = None
439
445
  if "browser_executable_path" in kwargs:
440
446
  binary_location = kwargs["browser_executable_path"]
447
+ if binary_location and isinstance(binary_location, str):
448
+ binary_location = binary_location.strip()
441
449
  else:
442
450
  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
451
+ if binary_location and isinstance(binary_location, str):
452
+ binary_location = binary_location.strip()
453
+ if not os.path.exists(binary_location):
454
+ binary_location = None
445
455
  if (
446
456
  shared_utils.is_chrome_130_or_newer(binary_location)
447
457
  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
@@ -378,6 +378,36 @@ class Connection(metaclass=CantTouchThis):
378
378
  accuracy=100,
379
379
  ))
380
380
 
381
+ async def set_auth(self, username, password, tab):
382
+ async def auth_challenge_handler(event: cdp.fetch.AuthRequired):
383
+ await tab.send(
384
+ cdp.fetch.continue_with_auth(
385
+ request_id=event.request_id,
386
+ auth_challenge_response=cdp.fetch.AuthChallengeResponse(
387
+ response="ProvideCredentials",
388
+ username=username,
389
+ password=password,
390
+ ),
391
+ )
392
+ )
393
+
394
+ async def req_paused(event: cdp.fetch.RequestPaused):
395
+ await tab.send(
396
+ cdp.fetch.continue_request(request_id=event.request_id)
397
+ )
398
+
399
+ tab.add_handler(
400
+ cdp.fetch.RequestPaused,
401
+ lambda event: asyncio.create_task(req_paused(event)),
402
+ )
403
+
404
+ tab.add_handler(
405
+ cdp.fetch.AuthRequired,
406
+ lambda event: asyncio.create_task(auth_challenge_handler(event)),
407
+ )
408
+
409
+ await tab.send(cdp.fetch.enable(handle_auth_requests=True))
410
+
381
411
  def __getattr__(self, item):
382
412
  """:meta private:"""
383
413
  try:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.39.0
3
+ Version: 4.39.1
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=bj46m18MZVWgWtHoBUoAWE_nY0f7HF4ab-r22nf_9_E,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=WD-m3IOJ2spaYelEn29bTpAOYUs9mIlCBIg7m7MZrII,242804
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
@@ -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
@@ -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=EQJNg8RBBg82rJiyyo3BDpZzViqyCrnA-pnLxhpg45g,34382
119
+ seleniumbase/undetected/cdp_driver/cdp_util.py,sha256=Pjyfx4NZJ4sjRHxXjZWOvKvgki3RIJx8p4j1tCAjOpE,24868
120
+ seleniumbase/undetected/cdp_driver/config.py,sha256=4-nUkEf7JSuOdFMNd6XmJnFucZrA59-kH1FUMxDcgFU,12561
121
+ seleniumbase/undetected/cdp_driver/connection.py,sha256=DbySOlk5mQnbWtz9SOQvEDYp9ws7ZOjz2HRCARXR-dk,25649
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.1.dist-info/licenses/LICENSE,sha256=BRblZsX7HyPUjQmYTiyWr_e9tzWvmR3R4SFclM2R3W0,1085
139
+ seleniumbase-4.39.1.dist-info/METADATA,sha256=mouLj0Wi78TD1BfpXwhjXZ15pNjBBFwDaMXB0bHy5dg,87206
140
+ seleniumbase-4.39.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
141
+ seleniumbase-4.39.1.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
142
+ seleniumbase-4.39.1.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
143
+ seleniumbase-4.39.1.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