seleniumbase 4.41.6__py3-none-any.whl → 4.41.8__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.
sbase/steps.py CHANGED
@@ -1191,6 +1191,15 @@ def set_attributes(context, selector, attribute, value):
1191
1191
  sb.set_attributes(selector, attribute, value)
1192
1192
 
1193
1193
 
1194
+ @step("Save as PDF to logs")
1195
+ @step("Save as PDF to the logs")
1196
+ @step("User saves page as PDF to logs")
1197
+ @step("User saves page as PDF to the logs")
1198
+ def save_as_pdf_to_logs(context):
1199
+ sb = context.sb
1200
+ sb.save_as_pdf_to_logs()
1201
+
1202
+
1194
1203
  @step("Save page source to logs")
1195
1204
  @step("Save the page source to the logs")
1196
1205
  @step("User saves page source to logs")
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.41.6"
2
+ __version__ = "4.41.8"
@@ -522,6 +522,8 @@ def generate_gherkin(srt_actions):
522
522
  )
523
523
  elif action[0] == "ss_tl":
524
524
  sb_actions.append("Save screenshot to logs")
525
+ elif action[0] == "pdftl":
526
+ sb_actions.append("Save as PDF to logs")
525
527
  elif action[0] == "spstl":
526
528
  sb_actions.append("Save page source to logs")
527
529
  elif action[0] == "sh_fc":
@@ -53,7 +53,9 @@ def print_runtime(description=None, limit=None):
53
53
  name = description
54
54
  info = c1 + "<info>" + cr
55
55
  # Print times with a statistically significant number of decimal places
56
- if run_time < 0.0001:
56
+ if run_time < 0.00001:
57
+ print("%s - {%s} ran for %.8f seconds." % (info, name, run_time))
58
+ elif run_time < 0.0001:
57
59
  print("%s - {%s} ran for %.7f seconds." % (info, name, run_time))
58
60
  elif run_time < 0.001:
59
61
  print("%s - {%s} ran for %.6f seconds." % (info, name, run_time))
@@ -865,6 +865,7 @@ def uc_open_with_cdp_mode(driver, url=None, **kwargs):
865
865
  cdp.scroll_down = CDPM.scroll_down
866
866
  cdp.save_screenshot = CDPM.save_screenshot
867
867
  cdp.print_to_pdf = CDPM.print_to_pdf
868
+ cdp.save_as_pdf = CDPM.save_as_pdf
868
869
  cdp.page = page # async world
869
870
  cdp.driver = driver.cdp_base # async world
870
871
  cdp.tab = cdp.page # shortcut (original)
@@ -1226,6 +1227,7 @@ def _on_a_cf_turnstile_page(driver):
1226
1227
  'data-callback="onCaptchaSuccess"' in source
1227
1228
  or "/challenge-platform/scripts/" in source
1228
1229
  or 'id="challenge-widget-' in source
1230
+ or "challenges.cloudf" in source
1229
1231
  or "cf-turnstile-" in source
1230
1232
  ):
1231
1233
  return True
@@ -556,6 +556,9 @@ def generate_sbase_code(srt_actions):
556
556
  elif action[0] == "ss_tl":
557
557
  method = "save_screenshot_to_logs"
558
558
  sb_actions.append("self.%s()" % method)
559
+ elif action[0] == "pdftl":
560
+ method = "save_as_pdf_to_logs"
561
+ sb_actions.append("self.%s()" % method)
559
562
  elif action[0] == "spstl":
560
563
  method = "save_page_source_to_logs"
561
564
  sb_actions.append("self.%s()" % method)
@@ -1661,11 +1661,16 @@ class CDPMethods():
1661
1661
  self.loop.run_until_complete(self.page.wait())
1662
1662
 
1663
1663
  def _on_a_cf_turnstile_page(self):
1664
+ time.sleep(0.042)
1664
1665
  source = self.get_page_source()
1666
+ if not source or len(source) < 400:
1667
+ time.sleep(0.22)
1668
+ source = self.get_page_source()
1665
1669
  if (
1666
1670
  'data-callback="onCaptchaSuccess"' in source
1667
1671
  or "/challenge-platform/scripts/" in source
1668
1672
  or 'id="challenge-widget-' in source
1673
+ or "challenges.cloudf" in source
1669
1674
  or "cf-turnstile-" in source
1670
1675
  ):
1671
1676
  return True
@@ -1795,6 +1800,7 @@ class CDPMethods():
1795
1800
  self.loop.run_until_complete(self.page.evaluate(script))
1796
1801
  self.loop.run_until_complete(self.page.wait())
1797
1802
  with suppress(Exception):
1803
+ time.sleep(0.08)
1798
1804
  element_rect = self.get_gui_element_rect(selector, timeout=1)
1799
1805
  e_x = element_rect["x"]
1800
1806
  e_y = element_rect["y"]
@@ -1804,6 +1810,7 @@ class CDPMethods():
1804
1810
  else:
1805
1811
  y = e_y + 22
1806
1812
  sb_config._saved_cf_x_y = (x, y)
1813
+ time.sleep(0.08)
1807
1814
  self.gui_click_x_y(x, y)
1808
1815
 
1809
1816
  def __gui_drag_drop(self, x1, y1, x2, y2, timeframe=0.25, uc_lock=False):
@@ -2571,6 +2578,9 @@ class CDPMethods():
2571
2578
  filename = os.path.join(folder, name)
2572
2579
  self.loop.run_until_complete(self.page.print_to_pdf(filename))
2573
2580
 
2581
+ def save_as_pdf(self, *args, **kwargs):
2582
+ self.print_to_pdf(*args, **kwargs)
2583
+
2574
2584
 
2575
2585
  class Chrome(CDPMethods):
2576
2586
  def __init__(self, url=None, **kwargs):
@@ -134,6 +134,7 @@ class BaseCase(unittest.TestCase):
134
134
  self.__requests_timeout = None
135
135
  self.__page_source_count = 0
136
136
  self.__screenshot_count = 0
137
+ self.__saved_pdf_count = 0
137
138
  self.__logs_data_count = 0
138
139
  self.__last_data_file = None
139
140
  self.__level_0_visual_f = False
@@ -4492,7 +4493,8 @@ class BaseCase(unittest.TestCase):
4492
4493
  If a provided selector is not found, then takes a full-page screenshot.
4493
4494
  (The last_page / failure screenshot is always "screenshot.png")
4494
4495
  The screenshot will be in PNG format."""
4495
- self.wait_for_ready_state_complete()
4496
+ if not self.__is_cdp_swap_needed():
4497
+ self.wait_for_ready_state_complete()
4496
4498
  test_logpath = os.path.join(self.log_path, self.__get_test_id())
4497
4499
  self.__create_log_path_as_needed(test_logpath)
4498
4500
  if name:
@@ -4510,6 +4512,11 @@ class BaseCase(unittest.TestCase):
4510
4512
  if selector and by:
4511
4513
  selector, by = self.__recalculate_selector(selector, by)
4512
4514
  if page_actions.is_element_present(self.driver, selector, by):
4515
+ if self.__is_cdp_swap_needed():
4516
+ selector = self.convert_to_css_selector(selector, by=by)
4517
+ return self.cdp.save_screenshot(
4518
+ name, folder=test_logpath, selector=selector
4519
+ )
4513
4520
  return page_actions.save_screenshot(
4514
4521
  self.driver, name, test_logpath, selector, by
4515
4522
  )
@@ -4523,8 +4530,49 @@ class BaseCase(unittest.TestCase):
4523
4530
  action = ["ss_tl", "", origin, time_stamp]
4524
4531
  self.__extra_actions.append(action)
4525
4532
  sb_config._has_logs = True
4533
+ if self.__is_cdp_swap_needed():
4534
+ return self.cdp.save_screenshot(name, folder=test_logpath)
4526
4535
  return page_actions.save_screenshot(self.driver, name, test_logpath)
4527
4536
 
4537
+ def save_as_pdf(self, name, folder=None):
4538
+ """Same as self.print_to_pdf()"""
4539
+ return self.print_to_pdf(name, folder=folder)
4540
+
4541
+ def save_as_pdf_to_logs(self, name=None):
4542
+ """Saves the page as a PDF to the "latest_logs/" folder.
4543
+ Naming is automatic:
4544
+ If NO NAME provided: "_1_PDF.pdf", "_2_PDF.pdf", etc.
4545
+ If NAME IS provided, then: "_1_name.pdf", "_2_name.pdf", etc."""
4546
+ if not self.__is_cdp_swap_needed():
4547
+ self.wait_for_ready_state_complete()
4548
+ test_logpath = os.path.join(self.log_path, self.__get_test_id())
4549
+ self.__create_log_path_as_needed(test_logpath)
4550
+ if name:
4551
+ name = str(name)
4552
+ self.__saved_pdf_count += 1
4553
+ if not name or len(name) == 0:
4554
+ name = "_%s_PDF.pdf" % self.__saved_pdf_count
4555
+ else:
4556
+ pre_name = "_%s_" % self.__saved_pdf_count
4557
+ if len(name) >= 4 and name[-4:].lower() == ".pdf":
4558
+ name = name[:-4]
4559
+ if len(name) == 0:
4560
+ name = "PDF"
4561
+ name = "%s%s.pdf" % (pre_name, name)
4562
+ if self.recorder_mode:
4563
+ url = self.get_current_url()
4564
+ if url and len(url) > 0:
4565
+ if ("http:") in url or ("https:") in url or ("file:") in url:
4566
+ if self.get_session_storage_item("pause_recorder") == "no":
4567
+ time_stamp = self.execute_script("return Date.now();")
4568
+ origin = self.get_origin()
4569
+ action = ["pdftl", "", origin, time_stamp]
4570
+ self.__extra_actions.append(action)
4571
+ sb_config._has_logs = True
4572
+ if self.__is_cdp_swap_needed():
4573
+ return self.cdp.print_to_pdf(name, folder=test_logpath)
4574
+ return self.print_to_pdf(name, test_logpath)
4575
+
4528
4576
  def save_page_source_to_logs(self, name=None):
4529
4577
  """Saves the page HTML to the "latest_logs/" folder.
4530
4578
  Naming is automatic:
@@ -5517,6 +5565,7 @@ class BaseCase(unittest.TestCase):
5517
5565
  ext_actions.append("s_scr")
5518
5566
  ext_actions.append("ss_tf")
5519
5567
  ext_actions.append("ss_tl")
5568
+ ext_actions.append("pdftl")
5520
5569
  ext_actions.append("spstl")
5521
5570
  ext_actions.append("da_el")
5522
5571
  ext_actions.append("da_ep")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.41.6
3
+ Version: 4.41.8
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
@@ -164,7 +164,7 @@ Provides-Extra: pdfminer
164
164
  Requires-Dist: pdfminer.six==20250324; python_version < "3.9" and extra == "pdfminer"
165
165
  Requires-Dist: pdfminer.six==20250506; python_version >= "3.9" and extra == "pdfminer"
166
166
  Requires-Dist: cryptography==39.0.2; python_version < "3.9" and extra == "pdfminer"
167
- Requires-Dist: cryptography==45.0.7; python_version >= "3.9" and extra == "pdfminer"
167
+ Requires-Dist: cryptography==46.0.1; python_version >= "3.9" and extra == "pdfminer"
168
168
  Requires-Dist: cffi==1.17.1; python_version < "3.9" and extra == "pdfminer"
169
169
  Requires-Dist: cffi==2.0.0; python_version >= "3.9" and extra == "pdfminer"
170
170
  Requires-Dist: pycparser==2.22; python_version < "3.9" and extra == "pdfminer"
@@ -177,7 +177,7 @@ Requires-Dist: pip-system-certs==4.0; platform_system == "Windows" and extra ==
177
177
  Provides-Extra: proxy
178
178
  Requires-Dist: proxy.py==2.4.3; extra == "proxy"
179
179
  Provides-Extra: psutil
180
- Requires-Dist: psutil==7.0.0; extra == "psutil"
180
+ Requires-Dist: psutil==7.1.0; extra == "psutil"
181
181
  Provides-Extra: pyautogui
182
182
  Requires-Dist: PyAutoGUI==0.9.54; extra == "pyautogui"
183
183
  Provides-Extra: selenium-stealth
@@ -275,26 +275,31 @@ Dynamic: summary
275
275
 
276
276
  --------
277
277
 
278
- <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_google.py">raw_google.py</a>, which performs a Google search:</p>
278
+ <p align="left">📗 For performing a Google Search without hitting the "unusual traffic" page, you can use SeleniumBase UC Mode.<br />Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_google.py">SeleniumBase/examples/raw_google.py</a>, which exports results into different formats (PDF, HTML, PNG):</p>
279
279
 
280
280
  ```python
281
281
  from seleniumbase import SB
282
282
 
283
283
  with SB(test=True, uc=True) as sb:
284
284
  sb.open("https://google.com/ncr")
285
- sb.type('[title="Search"]', "SeleniumBase GitHub page\n")
286
- sb.click('[href*="github.com/seleniumbase/"]')
287
- sb.save_screenshot_to_logs() # ./latest_logs/
285
+ sb.type('[title="Search"]', "SeleniumBase GitHub page")
286
+ sb.click("div:not([jsname]) > * > input")
288
287
  print(sb.get_page_title())
288
+ sb.sleep(2) # Wait for the "AI Overview" result
289
+ if sb.is_text_visible("Generating"):
290
+ sb.wait_for_text("AI Overview")
291
+ sb.save_as_pdf_to_logs() # Saved to ./latest_logs/
292
+ sb.save_page_source_to_logs()
293
+ sb.save_screenshot_to_logs()
289
294
  ```
290
295
 
291
296
  > `python raw_google.py`
292
297
 
293
- <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_google.py"><img src="https://seleniumbase.github.io/cdn/gif/google_search.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="480" /></a>
298
+ <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_google.py"><img src="https://seleniumbase.github.io/cdn/img/google_sb_result.png" alt="SeleniumBase on Google" title="SeleniumBase on Google" width="480" /></a>
294
299
 
295
300
  --------
296
301
 
297
- <p align="left">📗 Here's an example of bypassing Cloudflare's challenge page: <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/raw_gitlab.py">SeleniumBase/examples/cdp_mode/raw_gitlab.py</a></p>
302
+ <p align="left">📗 Here's an example of bypassing Cloudflare's challenge page with UC Mode + CDP Mode: <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/raw_gitlab.py">SeleniumBase/examples/cdp_mode/raw_gitlab.py</a></p>
298
303
 
299
304
  ```python
300
305
  from seleniumbase import SB
@@ -302,16 +307,36 @@ from seleniumbase import SB
302
307
  with SB(uc=True, test=True, locale="en") as sb:
303
308
  url = "https://gitlab.com/users/sign_in"
304
309
  sb.activate_cdp_mode(url)
305
- sb.sleep(1)
310
+ sb.sleep(2.2)
306
311
  sb.uc_gui_click_captcha()
307
- sb.sleep(2)
312
+ sb.assert_text("Username", '[for="user_login"]', timeout=3)
313
+ sb.assert_element('label[for="user_login"]')
314
+ sb.highlight('button:contains("Sign in")')
315
+ sb.highlight('h1:contains("GitLab.com")')
316
+ sb.post_message("SeleniumBase wasn't detected", duration=4)
308
317
  ```
309
318
 
310
319
  <img src="https://seleniumbase.github.io/other/cf_sec.jpg" title="SeleniumBase" width="332"> <img src="https://seleniumbase.github.io/other/gitlab_bypass.png" title="SeleniumBase" width="288">
311
320
 
321
+ <p align="left">📙 You can also use SeleniumBase's pure CDP Mode, which doesn't use chromedriver, Selenium, or a Python context manager at all: <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/raw_cdp_gitlab.py">SeleniumBase/examples/cdp_mode/raw_cdp_gitlab.py</a></p>
322
+
323
+ ```python
324
+ from seleniumbase import sb_cdp
325
+
326
+ url = "https://gitlab.com/users/sign_in"
327
+ sb = sb_cdp.Chrome(url)
328
+ sb.sleep(2.5)
329
+ sb.gui_click_captcha()
330
+ sb.highlight('h1:contains("GitLab.com")')
331
+ sb.highlight('button:contains("Sign in")')
332
+ sb.driver.stop()
333
+ ```
334
+
335
+ > (Due to a change in Chrome 137 where the --load-extension switch was removed, one limitation with this format is that you can't load extensions directly. The other formats weren't affected by this change.)
336
+
312
337
  --------
313
338
 
314
- <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_get_swag.py">test_get_swag.py</a>, which tests an e-commerce site:</p>
339
+ <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_get_swag.py">SeleniumBase/examples/test_get_swag.py</a>, which tests an e-commerce site:</p>
315
340
 
316
341
  ```python
317
342
  from seleniumbase import BaseCase
@@ -343,7 +368,7 @@ class MyTestClass(BaseCase):
343
368
 
344
369
  --------
345
370
 
346
- <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_coffee_cart.py" target="_blank">test_coffee_cart.py</a>, which verifies an e-commerce site:</p>
371
+ <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_coffee_cart.py" target="_blank">SeleniumBase/examples/test_coffee_cart.py</a>, which verifies an e-commerce site:</p>
347
372
 
348
373
  ```zsh
349
374
  pytest test_coffee_cart.py --demo
@@ -357,7 +382,7 @@ pytest test_coffee_cart.py --demo
357
382
 
358
383
  <a id="multiple_examples"></a>
359
384
 
360
- <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_demo_site.py" target="_blank">test_demo_site.py</a>, which covers several actions:</p>
385
+ <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_demo_site.py" target="_blank">SeleniumBase/examples/test_demo_site.py</a>, which covers several actions:</p>
361
386
 
362
387
  ```zsh
363
388
  pytest test_demo_site.py
@@ -1,15 +1,15 @@
1
1
  sbase/__init__.py,sha256=02izDj786GVBT0bpSq2Q2O8uwSxtyT09pnobZz91ML8,605
2
2
  sbase/__main__.py,sha256=G0bVB1-DM4PGwQ1KyOupaWCs4ePbChZNNWuX2htim5U,647
3
- sbase/steps.py,sha256=EdJyNVJ1yxoHsc7qp8kzx0EESIkOh_033yLCvmaPcs4,43281
3
+ sbase/steps.py,sha256=wiPSWZhFpBlWvkqXRJ18btpBu3nQaw9K5AzIJNAX5RM,43521
4
4
  seleniumbase/__init__.py,sha256=JFEY9P5QJqsa1M6ghzLMH2eIPQyh85iglCaQwg8Y8z4,2498
5
5
  seleniumbase/__main__.py,sha256=dn1p6dgCchmcH1zzTzzQvFwwdQQqnTGH6ULV9m4hv24,654
6
- seleniumbase/__version__.py,sha256=ys7RbpJa5jmQLmHGvOoA4oggwlOShS76pELKLJHJyr4,46
6
+ seleniumbase/__version__.py,sha256=tTZ9nY-w_0evWYUqHvWS_7_jOhQajVFN3haqZ6NnH1w,46
7
7
  seleniumbase/behave/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- seleniumbase/behave/behave_helper.py,sha256=f4CdiSSYM3gMAicSKWJInkVGFwpGXtHMD8fikTehopQ,24291
8
+ seleniumbase/behave/behave_helper.py,sha256=lJtagtivSbEpbRj0EKV4l4PuPU6NANONJJAnYwgVCe0,24379
9
9
  seleniumbase/behave/behave_sb.py,sha256=guLihFsr1uJ4v2AR3r3Vy_BTeHrHwy2JEJxhp-MVnZA,59872
10
10
  seleniumbase/behave/steps.py,sha256=8-N-NB2tnDsxaP4LSg-uSBgbwZYMS6ZEL1oggO1PCoU,390
11
11
  seleniumbase/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
- seleniumbase/common/decorators.py,sha256=DYdjtF8Y7YJj0JS33WtmsIn4yddPoniNwcPyrgt522o,7857
12
+ seleniumbase/common/decorators.py,sha256=js9TmhMsEtI_-obumjVWtNwG6AfXT6J2vIpK1RFd1Ps,7968
13
13
  seleniumbase/common/encryption.py,sha256=IfAuE0hdrd3y-_qAQUWdSOKRGQ4QN24uTOBiQ9Eeq2s,5593
14
14
  seleniumbase/common/exceptions.py,sha256=SbdHOTbg7ycrioWleAVw9kG9vBtDfbYoj3e7ikkYYz0,3257
15
15
  seleniumbase/common/obfuscate.py,sha256=VrwPbVigPH_Jk6ADCk5_miMoq1VK4M9SKnYScDkk-DQ,1204
@@ -36,7 +36,7 @@ seleniumbase/console_scripts/sb_print.py,sha256=tNy-bMDgwHJO3bZxMpmo9weSE8uhbH0C
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=BmL3ppQ4A4E5OKxJhhjqCKymBgGNC7iiWI4VTsSNvfE,247964
39
+ seleniumbase/core/browser_launcher.py,sha256=1qA7HvmH5NvvvBzy5yTPMV5SxVTHISf96A3g9pseXAo,248044
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
@@ -47,10 +47,10 @@ seleniumbase/core/jqc_helper.py,sha256=2DDQr9Q2jSSZqFzX588jLlUM9oJvyrRWq2aORSIPU
47
47
  seleniumbase/core/log_helper.py,sha256=JvB3FyOJJkVAP5RZXUuap468LIacqlO1UsqtEAVTfG4,23612
48
48
  seleniumbase/core/mysql.py,sha256=X1McqBWCzN9DndyBbNrVg9_kvtaByVhodiXYkGbn36A,3955
49
49
  seleniumbase/core/proxy_helper.py,sha256=pZ1NboNfziHU3vWZLOZLX-qkfM3oKSnpc3omQf9EUQQ,8809
50
- seleniumbase/core/recorder_helper.py,sha256=OBqNiCC_11ctpsD72KV4YUaKovmSpvs14HP1gwFesBA,25190
50
+ seleniumbase/core/recorder_helper.py,sha256=gDION28OK4NAYsE-7ohKZ9Z3sxQQ0FEjf859LDpqsg4,25320
51
51
  seleniumbase/core/report_helper.py,sha256=AIl6Qava2yW1uSzbLpJBlPlYDz0KE-rVhogh8hsGWBo,12201
52
52
  seleniumbase/core/s3_manager.py,sha256=z_4qx2jI_gtK5r3niGXgEOBpfMUicUCOciowai50MP4,3529
53
- seleniumbase/core/sb_cdp.py,sha256=jaCBjRUxpOdc1iKeHXIE6-eFOlhJ06gV7HuT9F15s_Q,101601
53
+ seleniumbase/core/sb_cdp.py,sha256=QmbU3P9gPHL2jvuza1PiAm0LcViV3j0UU1PpZerLEGA,101935
54
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
@@ -67,7 +67,7 @@ seleniumbase/extensions/disable_csp.zip,sha256=5RvomXnm2PdivUVcxTV6jfvD8WhTEsQYH
67
67
  seleniumbase/extensions/recorder.zip,sha256=JEE_FVEvlS63cFQbVLEroIyPSS91nWCDL0MhjVrmIpk,11813
68
68
  seleniumbase/extensions/sbase_ext.zip,sha256=3s1N8zrVaMz8RQEOIoBzC3KDjtmHwVZRvVsX25Odr_s,8175
69
69
  seleniumbase/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
- seleniumbase/fixtures/base_case.py,sha256=kebDf0oMhk1aDZmLsfI2MHL5gy2GKz7P5U5rwGAhCxI,739163
70
+ seleniumbase/fixtures/base_case.py,sha256=ENR8NXs-WVVl2CJHABwUyZikkxN3EF93Riv2ZQN3cno,741491
71
71
  seleniumbase/fixtures/constants.py,sha256=WMrItuNyKq3XVJ64NluLIRc4gJCxDw8K8qXED0b9S2w,13752
72
72
  seleniumbase/fixtures/css_to_xpath.py,sha256=9ouDB1xl4MJ2os6JOgTIAyHKOQfuxtxvXC3O5hSnEKA,1954
73
73
  seleniumbase/fixtures/errors.py,sha256=KyxuEVx_e3MPhVrJfNIa_3ltMpbCFxfy_jxK8RFNTns,555
@@ -137,9 +137,9 @@ seleniumbase/utilities/selenium_grid/start-grid-hub.bat,sha256=Ftq-GrAKRYH2ssDPr
137
137
  seleniumbase/utilities/selenium_grid/start-grid-hub.sh,sha256=KADv0RUHONLL2_I443QFK8PryBpDmKn5Gy0s4o0vDSM,106
138
138
  seleniumbase/utilities/selenium_ide/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
139
  seleniumbase/utilities/selenium_ide/convert_ide.py,sha256=pZFnqEJQEKZPyNFjkLD29s2HPQgCrWW9XJWpCPhWOoM,31691
140
- seleniumbase-4.41.6.dist-info/licenses/LICENSE,sha256=BRblZsX7HyPUjQmYTiyWr_e9tzWvmR3R4SFclM2R3W0,1085
141
- seleniumbase-4.41.6.dist-info/METADATA,sha256=_q0OEMgHW4Xfif-8RMAwN2aM7ilie9FyUpUZMcnL3Aw,87769
142
- seleniumbase-4.41.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
143
- seleniumbase-4.41.6.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
144
- seleniumbase-4.41.6.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
145
- seleniumbase-4.41.6.dist-info/RECORD,,
140
+ seleniumbase-4.41.8.dist-info/licenses/LICENSE,sha256=BRblZsX7HyPUjQmYTiyWr_e9tzWvmR3R4SFclM2R3W0,1085
141
+ seleniumbase-4.41.8.dist-info/METADATA,sha256=DAejvp5nQbkxPiKbTGL2M_vRz_HF4sgGwt4hcT6PiaM,89262
142
+ seleniumbase-4.41.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
143
+ seleniumbase-4.41.8.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
144
+ seleniumbase-4.41.8.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
145
+ seleniumbase-4.41.8.dist-info/RECORD,,