seleniumbase 4.17.6__py3-none-any.whl → 4.17.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.
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.17.6"
2
+ __version__ = "4.17.8"
@@ -940,7 +940,7 @@ def get_configured_sb(context):
940
940
  if sb_config.dash_title:
941
941
  constants.Dashboard.TITLE = sb_config.dash_title.replace("_", " ")
942
942
 
943
- log_helper.log_folder_setup(sb.log_path, sb.archive_logs)
943
+ log_helper.log_folder_setup("latest_logs/", sb.archive_logs)
944
944
  download_helper.reset_downloads_folder()
945
945
  proxy_helper.remove_proxy_zip_if_present()
946
946
  return sb
@@ -1152,10 +1152,9 @@ def _perform_behave_unconfigure_():
1152
1152
  except Exception:
1153
1153
  pass
1154
1154
  sb_config.shared_driver = None
1155
- if hasattr(sb_config, "log_path"):
1156
- log_helper.archive_logs_if_set(
1157
- sb_config.log_path, sb_config.archive_logs
1158
- )
1155
+ if hasattr(sb_config, "archive_logs"):
1156
+ log_helper.archive_logs_if_set("latest_logs/", sb_config.archive_logs)
1157
+ log_helper.clear_empty_logs()
1159
1158
  # Dashboard post-processing: Disable time-based refresh and stamp complete
1160
1159
  if not hasattr(sb_config, "dashboard") or not sb_config.dashboard:
1161
1160
  # Done with "behave_unconfigure" unless using the Dashboard
@@ -132,12 +132,12 @@ def requests_get(url):
132
132
  if use_proxy:
133
133
  proxies = {protocol: proxy_string}
134
134
  try:
135
- response = requests.get(url, proxies=proxies, timeout=3)
135
+ response = requests.get(url, proxies=proxies, timeout=1.25)
136
136
  except Exception:
137
137
  # Prevent SSLCertVerificationError / CERTIFICATE_VERIFY_FAILED
138
138
  url = url.replace("https://", "http://")
139
139
  time.sleep(0.04)
140
- response = requests.get(url, proxies=proxies, timeout=4)
140
+ response = requests.get(url, proxies=proxies, timeout=2.75)
141
141
  return response
142
142
 
143
143
 
@@ -148,14 +148,14 @@ def requests_get_with_retry(url):
148
148
  if use_proxy:
149
149
  proxies = {protocol: proxy_string}
150
150
  try:
151
- response = requests.get(url, proxies=proxies, timeout=3)
151
+ response = requests.get(url, proxies=proxies, timeout=1.35)
152
152
  except Exception:
153
153
  time.sleep(1)
154
154
  try:
155
- response = requests.get(url, proxies=proxies, timeout=4)
155
+ response = requests.get(url, proxies=proxies, timeout=2.45)
156
156
  except Exception:
157
157
  time.sleep(1)
158
- response = requests.get(url, proxies=proxies, timeout=4)
158
+ response = requests.get(url, proxies=proxies, timeout=3.55)
159
159
  return response
160
160
 
161
161
 
@@ -100,6 +100,7 @@ def requests_get(url, proxy_string=None):
100
100
  import requests
101
101
 
102
102
  protocol = "http"
103
+ proxies = None
103
104
  if proxy_string:
104
105
  if proxy_string.endswith(":443"):
105
106
  protocol = "https"
@@ -107,24 +108,15 @@ def requests_get(url, proxy_string=None):
107
108
  protocol = "socks4"
108
109
  elif "socks5" in proxy_string:
109
110
  protocol = "socks5"
110
- response = None
111
- if proxy_string:
112
111
  proxies = {protocol: proxy_string}
113
- try:
114
- response = requests.get(url, proxies=proxies, timeout=3)
115
- except Exception:
116
- # Prevent SSLCertVerificationError / CERTIFICATE_VERIFY_FAILED
117
- url = url.replace("https://", "http://")
118
- time.sleep(0.04)
119
- response = requests.get(url, proxies=proxies, timeout=4)
120
- else:
121
- try:
122
- response = requests.get(url, timeout=3)
123
- except Exception:
124
- # Prevent SSLCertVerificationError / CERTIFICATE_VERIFY_FAILED
125
- url = url.replace("https://", "http://")
126
- time.sleep(0.04)
127
- response = requests.get(url, timeout=4)
112
+ response = None
113
+ try:
114
+ response = requests.get(url, proxies=proxies, timeout=1.25)
115
+ except Exception:
116
+ # Prevent SSLCertVerificationError / CERTIFICATE_VERIFY_FAILED
117
+ url = url.replace("https://", "http://")
118
+ time.sleep(0.04)
119
+ response = requests.get(url, proxies=proxies, timeout=2.75)
128
120
  return response
129
121
 
130
122
 
@@ -24,11 +24,22 @@ def get_downloads_folder():
24
24
  def reset_downloads_folder():
25
25
  """Clears the downloads folder.
26
26
  If settings.ARCHIVE_EXISTING_DOWNLOADS is set to True, archives it."""
27
+ archived_downloads_folder = os.path.join(os.getcwd(), ARCHIVE_DIR) + os.sep
27
28
  if os.path.exists(downloads_path) and not os.listdir(downloads_path) == []:
28
- archived_downloads_folder = os.path.join(
29
- downloads_path, "..", ARCHIVE_DIR
30
- )
31
29
  reset_downloads_folder_assistant(archived_downloads_folder)
30
+ if os.path.exists(downloads_path) and os.listdir(downloads_path) == []:
31
+ try:
32
+ os.rmdir(downloads_path)
33
+ except OSError:
34
+ pass
35
+ if (
36
+ os.path.exists(archived_downloads_folder)
37
+ and os.listdir(archived_downloads_folder) == []
38
+ ):
39
+ try:
40
+ os.rmdir(archived_downloads_folder)
41
+ except OSError:
42
+ pass
32
43
 
33
44
 
34
45
  def reset_downloads_folder_assistant(archived_downloads_folder):
@@ -563,3 +563,18 @@ def log_folder_setup(log_path, archive_logs=False):
563
563
  pass
564
564
  else:
565
565
  shutil.rmtree(archived_logs) # (Archive test run later)
566
+
567
+
568
+ def clear_empty_logs():
569
+ latest_logs_dir = os.path.join(os.getcwd(), "latest_logs") + os.sep
570
+ archived_folder = os.path.join(os.getcwd(), "archived_logs") + os.sep
571
+ if os.path.exists(latest_logs_dir) and not os.listdir(latest_logs_dir):
572
+ try:
573
+ os.rmdir(latest_logs_dir)
574
+ except OSError:
575
+ pass
576
+ if os.path.exists(archived_folder) and not os.listdir(archived_folder):
577
+ try:
578
+ os.rmdir(archived_folder)
579
+ except OSError:
580
+ pass
@@ -20,9 +20,11 @@ class MyTestClass(BaseCase):
20
20
  def test_anything(self):
21
21
  # Write your code here. Example:
22
22
  self.open("https://github.com/")
23
- self.type("input.header-search-input", "SeleniumBase\n")
23
+ self.click('span[data-target*="inputButtonText"]')
24
+ self.type("input#query-builder-test", "SeleniumBase\n")
24
25
  self.click('a[href="/seleniumbase/SeleniumBase"]')
25
26
  self.assert_element("div.repository-content")
27
+ self.assert_text("SeleniumBase", "strong a")
26
28
  # --------------------------------------------------------------
27
29
 
28
30
  SeleniumBase methods expand and improve on existing WebDriver commands.
@@ -393,7 +395,7 @@ class BaseCase(unittest.TestCase):
393
395
  self.__shadow_click(selector, timeout)
394
396
  return
395
397
  if self.__needs_minimum_wait() or self.browser == "safari":
396
- time.sleep(0.022)
398
+ time.sleep(0.03)
397
399
  element = page_actions.wait_for_element_visible(
398
400
  self.driver,
399
401
  selector,
@@ -626,20 +628,20 @@ class BaseCase(unittest.TestCase):
626
628
  except Exception:
627
629
  pass
628
630
  if self.__needs_minimum_wait() or self.browser == "safari":
629
- time.sleep(0.026)
631
+ time.sleep(0.03)
630
632
  try:
631
633
  if self.driver.current_url != pre_action_url:
632
634
  self.__ad_block_as_needed()
633
635
  self.__disable_beforeunload_as_needed()
634
636
  if self.__needs_minimum_wait():
635
- time.sleep(0.026)
637
+ time.sleep(0.03)
636
638
  except Exception:
637
639
  try:
638
640
  self.wait_for_ready_state_complete()
639
641
  except Exception:
640
642
  pass
641
643
  if self.__needs_minimum_wait():
642
- time.sleep(0.026)
644
+ time.sleep(0.03)
643
645
  else:
644
646
  time.sleep(0.08)
645
647
  if self.demo_mode:
@@ -12593,7 +12595,7 @@ class BaseCase(unittest.TestCase):
12593
12595
  self.__scroll_to_element(element, selector, by)
12594
12596
  self.wait_for_ready_state_complete()
12595
12597
  if self.__needs_minimum_wait():
12596
- time.sleep(0.025)
12598
+ time.sleep(0.03)
12597
12599
  if self.demo_mode and mark is None:
12598
12600
  mark = True
12599
12601
  if mark:
@@ -147,7 +147,8 @@ class MultiBrowser:
147
147
  DRIVER_FIXING_LOCK = Files.DOWNLOADS_FOLDER + "/driver_fixing.lock"
148
148
  DRIVER_REPAIRED = Files.DOWNLOADS_FOLDER + "/driver_fixed.lock"
149
149
  CERT_FIXING_LOCK = Files.DOWNLOADS_FOLDER + "/cert_fixing.lock"
150
- DOWNLOAD_FILE_LOCK = Files.DOWNLOADS_FOLDER + "/download_file.lock"
150
+ DOWNLOAD_FILE_LOCK = Files.DOWNLOADS_FOLDER + "/downloading.lock"
151
+ FILE_IO_LOCK = Files.DOWNLOADS_FOLDER + "/file_io.lock"
151
152
 
152
153
 
153
154
  class SavedCookies:
@@ -256,10 +256,10 @@ def _download_file_to(file_url, destination_folder, new_file_name=None):
256
256
 
257
257
 
258
258
  def _save_data_as(data, destination_folder, file_name):
259
- download_file_lock = fasteners.InterProcessLock(
260
- constants.MultiBrowser.DOWNLOAD_FILE_LOCK
259
+ file_io_lock = fasteners.InterProcessLock(
260
+ constants.MultiBrowser.FILE_IO_LOCK
261
261
  )
262
- with download_file_lock:
262
+ with file_io_lock:
263
263
  out_file = codecs.open(
264
264
  os.path.join(destination_folder, file_name), "w+", encoding="utf-8"
265
265
  )
@@ -268,10 +268,10 @@ def _save_data_as(data, destination_folder, file_name):
268
268
 
269
269
 
270
270
  def _append_data_to_file(data, destination_folder, file_name):
271
- download_file_lock = fasteners.InterProcessLock(
272
- constants.MultiBrowser.DOWNLOAD_FILE_LOCK
271
+ file_io_lock = fasteners.InterProcessLock(
272
+ constants.MultiBrowser.FILE_IO_LOCK
273
273
  )
274
- with download_file_lock:
274
+ with file_io_lock:
275
275
  existing_data = ""
276
276
  if os.path.exists(os.path.join(destination_folder, file_name)):
277
277
  with open(os.path.join(destination_folder, file_name), "r") as f:
@@ -286,10 +286,10 @@ def _append_data_to_file(data, destination_folder, file_name):
286
286
 
287
287
 
288
288
  def _get_file_data(folder, file_name):
289
- download_file_lock = fasteners.InterProcessLock(
290
- constants.MultiBrowser.DOWNLOAD_FILE_LOCK
289
+ file_io_lock = fasteners.InterProcessLock(
290
+ constants.MultiBrowser.FILE_IO_LOCK
291
291
  )
292
- with download_file_lock:
292
+ with file_io_lock:
293
293
  if not os.path.exists(os.path.join(folder, file_name)):
294
294
  raise Exception("File not found!")
295
295
  with open(os.path.join(folder, file_name), "r") as f:
@@ -244,6 +244,7 @@ class Base(Plugin):
244
244
  log_helper.archive_logs_if_set(
245
245
  self.options.log_path, self.options.archive_logs
246
246
  )
247
+ log_helper.clear_empty_logs()
247
248
  if self.report_on:
248
249
  if not self.import_error:
249
250
  report_helper.add_bad_page_log_file(self.page_results_list)
@@ -1708,7 +1708,7 @@ def pytest_configure(config):
1708
1708
  from seleniumbase.core import download_helper
1709
1709
  from seleniumbase.core import proxy_helper
1710
1710
 
1711
- log_helper.log_folder_setup(sb_config.log_path, sb_config.archive_logs)
1711
+ log_helper.log_folder_setup("latest_logs/", sb_config.archive_logs)
1712
1712
  download_helper.reset_downloads_folder()
1713
1713
  proxy_helper.remove_proxy_zip_if_present()
1714
1714
 
@@ -1810,7 +1810,7 @@ def pytest_collection_finish(session):
1810
1810
  from seleniumbase.core import download_helper
1811
1811
  from seleniumbase.core import proxy_helper
1812
1812
 
1813
- log_helper.log_folder_setup(sb_config.log_path, sb_config.archive_logs)
1813
+ log_helper.log_folder_setup("latest_logs/", sb_config.archive_logs)
1814
1814
  download_helper.reset_downloads_folder()
1815
1815
  proxy_helper.remove_proxy_zip_if_present()
1816
1816
  if sb_config.dashboard and len(session.items) > 0:
@@ -2016,9 +2016,8 @@ def _perform_pytest_unconfigure_():
2016
2016
  pass
2017
2017
  sb_config.shared_driver = None
2018
2018
  if hasattr(sb_config, "log_path") and sb_config.item_count > 0:
2019
- log_helper.archive_logs_if_set(
2020
- sb_config.log_path, sb_config.archive_logs
2021
- )
2019
+ log_helper.archive_logs_if_set("latest_logs/", sb_config.archive_logs)
2020
+ log_helper.clear_empty_logs()
2022
2021
  # Dashboard post-processing: Disable time-based refresh and stamp complete
2023
2022
  if not hasattr(sb_config, "dashboard") or not sb_config.dashboard:
2024
2023
  # Done with "pytest_unconfigure" unless using the Dashboard
@@ -115,6 +115,7 @@ def SB(
115
115
  interval=None, # SECONDS (Autoplay interval for SB Slides & Tour steps.)
116
116
  time_limit=None, # SECONDS (Safely fail tests that exceed the time limit.)
117
117
  ):
118
+ import os
118
119
  import sys
119
120
  import time
120
121
  import traceback
@@ -809,7 +810,6 @@ def SB(
809
810
  terminal_width = shared_utils.get_terminal_width()
810
811
  if test:
811
812
  import colorama
812
- import os
813
813
 
814
814
  colorama.init(autoreset=True)
815
815
  c1 = colorama.Fore.GREEN
@@ -834,7 +834,8 @@ def SB(
834
834
  from seleniumbase.core import download_helper
835
835
  from seleniumbase.core import proxy_helper
836
836
 
837
- log_helper.log_folder_setup(sb_config.log_path)
837
+ log_helper.log_folder_setup("latest_logs/")
838
+ log_helper.clear_empty_logs()
838
839
  download_helper.reset_downloads_folder()
839
840
  if not sb_config.multi_proxy:
840
841
  proxy_helper.remove_proxy_zip_if_present()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: seleniumbase
3
- Version: 4.17.6
3
+ Version: 4.17.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
@@ -141,7 +141,7 @@ Requires-Dist: mdurl ==0.1.2 ; python_version >= "3.7"
141
141
  Requires-Dist: rich ==13.5.2 ; python_version >= "3.7"
142
142
  Requires-Dist: urllib3 <2,>=1.26.16 ; python_version >= "3.7" and python_version < "3.10"
143
143
  Requires-Dist: setuptools >=68.0.0 ; python_version >= "3.7" and python_version < "3.8"
144
- Requires-Dist: setuptools >=68.1.0 ; python_version >= "3.8"
144
+ Requires-Dist: setuptools >=68.1.2 ; python_version >= "3.8"
145
145
  Requires-Dist: markdown-it-py ==3.0.0 ; python_version >= "3.8"
146
146
  Provides-Extra: allure
147
147
  Requires-Dist: allure-pytest ==2.9.45 ; (python_version < "3.7") and extra == 'allure'
@@ -1527,7 +1527,7 @@ pytest --reruns=1 --reruns-delay=1
1527
1527
  <p><div><a href="https://github.com/mdmintz">https://github.com/mdmintz</a></div></p>
1528
1528
 
1529
1529
  <div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/fancy_logo_14.png" title="SeleniumBase" width="220" /></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-22BBCC.svg" title="SeleniumBase" /></a> <a href="https://gitter.im/seleniumbase/SeleniumBase" target="_blank"><img src="https://img.shields.io/gitter/room/seleniumbase/SeleniumBase.svg" alt="Gitter chat"/></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://img.shields.io/badge/tested%20with-SeleniumBase-04C38E.svg" alt="Tested with SeleniumBase" /></a></div> <div><a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a></div>
1530
- <div><a href="https://pepy.tech/project/seleniumbase" target="_blank"><img src="https://pepy.tech/badge/seleniumbase" alt="SeleniumBase PyPI downloads" /></a></div>
1530
+ <div><a href="https://pepy.tech/project/seleniumbase" target="_blank"><img src="https://static.pepy.tech/badge/seleniumbase" alt="SeleniumBase PyPI downloads" /></a></div>
1531
1531
  <div><a href="https://github.com/seleniumbase/SeleniumBase/stargazers"><img src="https://img.shields.io/github/stars/seleniumbase/seleniumbase.svg?color=19A57B" title="Stargazers" /></a></div>
1532
1532
 
1533
1533
  --------
@@ -5,10 +5,10 @@ sbase/steps.py,sha256=XoRFgYGa0NADBZ0Pw1JhN_8bojMWox5-oRN0FwyfP5s,41310
5
5
  seleniumbase/ReadMe.md,sha256=5Bnv8gsyKQGABhLj0S4HXZdtVic98puQlIGYc7YHUm8,3612
6
6
  seleniumbase/__init__.py,sha256=Mw4ShIWUF2Efjx-JuwUQLWF9nIbxcX-vu9AOGBp32ec,2123
7
7
  seleniumbase/__main__.py,sha256=dn1p6dgCchmcH1zzTzzQvFwwdQQqnTGH6ULV9m4hv24,654
8
- seleniumbase/__version__.py,sha256=MekfMqr1fCmSO2a5y8oJ50TV1xMbGr5R3RngppCgFao,46
8
+ seleniumbase/__version__.py,sha256=rByAOy787ORpWObZKi6ahiWtQpc3J_5djJ1ogVrg6d8,46
9
9
  seleniumbase/behave/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  seleniumbase/behave/behave_helper.py,sha256=LVQlVEQjNHbYmG42njlg58cLv1QtPV5x86cWWqouM60,23415
11
- seleniumbase/behave/behave_sb.py,sha256=9rV4CixrlabHc8EEi8T3dUCsrJB_BxMesxPV6EtaNsw,54803
11
+ seleniumbase/behave/behave_sb.py,sha256=J6muTERpn3grdVGonoj2cU3KOQvf92HmWtasrOzhgvo,54818
12
12
  seleniumbase/behave/steps.py,sha256=8-N-NB2tnDsxaP4LSg-uSBgbwZYMS6ZEL1oggO1PCoU,390
13
13
  seleniumbase/common/ReadMe.md,sha256=PwQsRSPRCXejL-fg4YyDzED_Yr6e7ddmGu3g2OcDrcQ,3286
14
14
  seleniumbase/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -29,7 +29,7 @@ seleniumbase/console_scripts/run.py,sha256=EkbkCh7lHQsDAeNbswAv_QHR_ntre62xIc3aF
29
29
  seleniumbase/console_scripts/sb_behave_gui.py,sha256=GjM8NsTgcjte3Rwvl6fTWhWVSniKKF9tOugHH8iLToE,15153
30
30
  seleniumbase/console_scripts/sb_caseplans.py,sha256=ykweMa0fbd-C7fBeE7JUrRfl8GmXdi71NGhJh0nS-EE,18023
31
31
  seleniumbase/console_scripts/sb_commander.py,sha256=zM39kzAYp3b8V9aoqZ7ED2_Ns5dbqbMAnMpjUaYBD3s,13210
32
- seleniumbase/console_scripts/sb_install.py,sha256=DU48jZD8IZqc6x3YU-YJzFUPmw7VmOHMa45RWI9S_cw,43685
32
+ seleniumbase/console_scripts/sb_install.py,sha256=6RTV8lNRZoRCG0l6bNBTzb0CgMKvm8nBqbJhBgGhGb0,43700
33
33
  seleniumbase/console_scripts/sb_mkchart.py,sha256=BYzgzxRA66MeIBhEjeJKa9BqvViWX8YHSqjquWMLh1w,11044
34
34
  seleniumbase/console_scripts/sb_mkdir.py,sha256=YlkwYVAk3TcMLEDX7muqyqZRwmQQA_xka6H05o0p0ps,29833
35
35
  seleniumbase/console_scripts/sb_mkfile.py,sha256=wvv22cYCVVmFNEE4TDws1S6Rdd8vGhl9beebVvyXl7U,15515
@@ -40,15 +40,15 @@ seleniumbase/console_scripts/sb_print.py,sha256=PJyZ3jnaI6y1A-wL_PmuNhDwjIFSnKsD
40
40
  seleniumbase/console_scripts/sb_recorder.py,sha256=hKJXYLEd2sGKjc_mhUGI9rYHRqTD4kkzPc1G6xqw72Y,10628
41
41
  seleniumbase/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
42
  seleniumbase/core/application_manager.py,sha256=e_0sjtI8cjY5BNyZj1QBR0j6_oCScxGmSXYEpcYwuZE,576
43
- seleniumbase/core/browser_launcher.py,sha256=x8Hynd-41o9bq5U8ejBFymSrEu86FT1_UAU57HNOT1A,144898
43
+ seleniumbase/core/browser_launcher.py,sha256=WvEEfUEyBpj26kSvoOuerfgNrBmWF60ZymSDOkNYT7Q,144564
44
44
  seleniumbase/core/capabilities_parser.py,sha256=lu2W7O1JrU9tLgvhx5gQ_Baqnkf3IjcPDzze0P2Ou-Y,5736
45
45
  seleniumbase/core/colored_traceback.py,sha256=DrRWfg7XEnKcgY59Xj7Jdk09H-XqHYBSUpB-DiZt6iY,2020
46
46
  seleniumbase/core/create_db_tables.sql,sha256=VWPtrdiW_HQ6yETHjqTu-VIrTwvd8I8o1NfBeaVSHpU,972
47
47
  seleniumbase/core/detect_b_ver.py,sha256=iQBGGH6z8UzHP98XKAsIaxjdj5QBhYPna9fl6Fdt8NQ,9796
48
- seleniumbase/core/download_helper.py,sha256=YHEsFhm3sb5RRocpB9RBwAtaqUUTO6ZeQPA-stKX4lI,2087
48
+ seleniumbase/core/download_helper.py,sha256=x6ciD77zgwt5vWUFz4ZhpBhzPZR7jrWNEsrLu3bCxhQ,2452
49
49
  seleniumbase/core/encoded_images.py,sha256=rDKJ4cNJSuKiRcFViYU7bjyTS9_moI57gUPRXVg3u2k,14209
50
50
  seleniumbase/core/jqc_helper.py,sha256=-_GvIoKXJsOb7DBZ2WH8c7cAxAn0x3-U0HeZaIqdksw,10421
51
- seleniumbase/core/log_helper.py,sha256=EhN1QKxmD4gp0_F1wAWYP1bK9nJblYX50xpvdfDePQc,21822
51
+ seleniumbase/core/log_helper.py,sha256=8rHw2GPFQgMDv7Yoxjh0tJrj7KWO5g-CNiy51rthiQc,22330
52
52
  seleniumbase/core/mysql.py,sha256=brugSl8yuVxIn-5_I7YrIVfCg3Qdf5YdTjSAG7Gs_34,4143
53
53
  seleniumbase/core/proxy_helper.py,sha256=R00kmFWlj5yew9Yid_P4HWv7G6VKu2AQq0Ee5GbQ7Gs,7594
54
54
  seleniumbase/core/recorder_helper.py,sha256=Tme-mnxvlWMvJJvM_3tjtIUJIcRc2SvdLOmPKlxdASg,24207
@@ -69,13 +69,13 @@ seleniumbase/extensions/disable_csp.zip,sha256=YMifIIgEBiLrEFrS1sfW4Exh4br1V4oK1
69
69
  seleniumbase/extensions/recorder.zip,sha256=-DMwEq77tIR9vAakWnTjh9tTUs4e74p05msD_LVvzL4,11886
70
70
  seleniumbase/extensions/sbase_ext.zip,sha256=3s1N8zrVaMz8RQEOIoBzC3KDjtmHwVZRvVsX25Odr_s,8175
71
71
  seleniumbase/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
- seleniumbase/fixtures/base_case.py,sha256=RLgagqKGTUKZurOm1DTzGZnkOpY9GCgNQdt_vhFI_hg,670620
73
- seleniumbase/fixtures/constants.py,sha256=jBbLJQgDnQdx8OjVsxysiRM35N1NruKzFiUIqzcL6o0,11886
72
+ seleniumbase/fixtures/base_case.py,sha256=jArBY1pff-LJdZN20SKc0oeBpNkMgb0A5wQU6v9RBxg,670726
73
+ seleniumbase/fixtures/constants.py,sha256=v6WXNPEiMYkh6Vjdws2BCdHNFbswx49E9mGVOsZhAEQ,11944
74
74
  seleniumbase/fixtures/css_to_xpath.py,sha256=9ouDB1xl4MJ2os6JOgTIAyHKOQfuxtxvXC3O5hSnEKA,1954
75
75
  seleniumbase/fixtures/errors.py,sha256=KyxuEVx_e3MPhVrJfNIa_3ltMpbCFxfy_jxK8RFNTns,555
76
76
  seleniumbase/fixtures/js_utils.py,sha256=WSObKMyVpNmBsmWIc53qWt2AeUCuGv-36dhWpPBzgeM,44539
77
77
  seleniumbase/fixtures/page_actions.py,sha256=UsCpRXaUkVBxhljRVmnX1n0ocAG8pZ0ENy2db8A11XM,53389
78
- seleniumbase/fixtures/page_utils.py,sha256=It8hECni5HAKop11imQwgCJGUa0Gy0HmA3beEuFKUy8,9650
78
+ seleniumbase/fixtures/page_utils.py,sha256=dO-2iNbNQ3ge6-PtL1C2BdIAkpccLzEQ14wE7-BWW5M,9596
79
79
  seleniumbase/fixtures/shared_utils.py,sha256=zWly5TqDr-zQ6oPjqLopi3SF0dKEh68VHNldc_o0kF8,5653
80
80
  seleniumbase/fixtures/unittest_helper.py,sha256=sfZ92rZeBAn_sF_yQ3I6_I7h3lyU5-cV_UMegBNoEm8,1294
81
81
  seleniumbase/fixtures/words.py,sha256=FOA4mAYvl3EPVpBTvgvK6YwCL8BdlRCmed685kEe7Vg,7827
@@ -88,14 +88,14 @@ seleniumbase/masterqa/ReadMe.md,sha256=ZzvsTSY9MCZnIR9e_ZvMxeo6NTOBVad0nCilBenXm
88
88
  seleniumbase/masterqa/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
89
89
  seleniumbase/masterqa/master_qa.py,sha256=jLWmAx32Rnu1IhmvrRt8BbsUIcDW5xYj2ouVozny-Y4,19258
90
90
  seleniumbase/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
- seleniumbase/plugins/base_plugin.py,sha256=Ji8X2p-oRWl3_vgFCcUEnsxW65N1YCMkplJ25qoYW3s,14214
91
+ seleniumbase/plugins/base_plugin.py,sha256=u0A1K9HUFZOWAGcPxlNjvfJvAO_f7glnigfNSFcDDm8,14252
92
92
  seleniumbase/plugins/basic_test_info.py,sha256=8ov6n417gPbqqvrlT4zrch7l2XcRt-GF2ny6rR9AMWk,2108
93
93
  seleniumbase/plugins/db_reporting_plugin.py,sha256=cLIwG2CQFOA7lr4-uxmqPeL9WjUGbiBhgWkeUaNk_zI,7284
94
94
  seleniumbase/plugins/driver_manager.py,sha256=HJFLoAxgtsdwYh7OzC7TZP7WQomToxo_l_tFMa2gjN4,17799
95
95
  seleniumbase/plugins/page_source.py,sha256=loTnXxOj4kxEukuTZEiGyvKBhY3KDVDMnNlHHheTBDE,1889
96
- seleniumbase/plugins/pytest_plugin.py,sha256=1bpxDx1J234ly2oN6y0RkwPOuU4ZgWIT1ob52aICTbA,91966
96
+ seleniumbase/plugins/pytest_plugin.py,sha256=awkFpFEjf_qU7eq6E8UgkzxvPz5aImd3rwrAhnJtfSQ,91966
97
97
  seleniumbase/plugins/s3_logging_plugin.py,sha256=WDfertQgGOW_SRJpFMaekYD6vBVW9VO62POtXXy2HCM,2319
98
- seleniumbase/plugins/sb_manager.py,sha256=jnxnVEhD_Y11t8iYKCg5ooPXFrR6tgJmft2YRNZXatA,36122
98
+ seleniumbase/plugins/sb_manager.py,sha256=6oXIvFRdfnedThAjBrWPTBB2A2wjWMdzTl2PlRNWm5g,36152
99
99
  seleniumbase/plugins/screen_shots.py,sha256=1hrXw-hzuZ1BR6Yh7AyWX2ABnvnP73-RCbwdz958gj4,1127
100
100
  seleniumbase/plugins/selenium_plugin.py,sha256=tBzJhd7Om-RvLjpWGpRfgg4OCpVlliB4M_wiSX_NKkQ,53847
101
101
  seleniumbase/resources/ReadMe.md,sha256=uminnO5_Uv-UZDKcc9a9s9kxisaYUps-H98Fp5PJcaU,2124
@@ -136,9 +136,9 @@ seleniumbase/utilities/selenium_grid/start-grid-hub.sh,sha256=KADv0RUHONLL2_I443
136
136
  seleniumbase/utilities/selenium_ide/ReadMe.md,sha256=hznGeuMpkIimqMiZBW-4goIy2ltW4l8X9kb0YSPUQfE,4483
137
137
  seleniumbase/utilities/selenium_ide/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
138
  seleniumbase/utilities/selenium_ide/convert_ide.py,sha256=pZFnqEJQEKZPyNFjkLD29s2HPQgCrWW9XJWpCPhWOoM,31691
139
- seleniumbase-4.17.6.dist-info/LICENSE,sha256=9CweYVs2pqSWEApWewHooJ5p5F44GV0wSXi-jV0kA_U,1085
140
- seleniumbase-4.17.6.dist-info/METADATA,sha256=OUEvnuUNd6pmwrDMJh5C5PRzUSH8pM5lOzX3Hqls82g,83767
141
- seleniumbase-4.17.6.dist-info/WHEEL,sha256=5sUXSg9e4bi7lTLOHcm6QEYwO5TIF1TNbTSVFVjcJcc,92
142
- seleniumbase-4.17.6.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
143
- seleniumbase-4.17.6.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
144
- seleniumbase-4.17.6.dist-info/RECORD,,
139
+ seleniumbase-4.17.8.dist-info/LICENSE,sha256=9CweYVs2pqSWEApWewHooJ5p5F44GV0wSXi-jV0kA_U,1085
140
+ seleniumbase-4.17.8.dist-info/METADATA,sha256=POw4yoRZWiq7Bm43Dkqqt_IED2xF7yx-T7LeoyMixog,83774
141
+ seleniumbase-4.17.8.dist-info/WHEEL,sha256=5sUXSg9e4bi7lTLOHcm6QEYwO5TIF1TNbTSVFVjcJcc,92
142
+ seleniumbase-4.17.8.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
143
+ seleniumbase-4.17.8.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
144
+ seleniumbase-4.17.8.dist-info/RECORD,,