seleniumbase 4.39.2__py3-none-any.whl → 4.39.3__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.2"
2
+ __version__ = "4.39.3"
@@ -4592,9 +4592,9 @@ class BaseCase(unittest.TestCase):
4592
4592
  Loads the page cookies from the "saved_cookies" folder.
4593
4593
  Usage for setting expiry:
4594
4594
  If expiry == 0 or False: Delete "expiry".
4595
+ If expiry is True: Set "expiry" to 24 hours in the future.
4595
4596
  If expiry == -1 (or < 0): Do not modify "expiry".
4596
4597
  If expiry > 0: Set "expiry" to expiry minutes in the future.
4597
- If expiry == True: Set "expiry" to 24 hours in the future.
4598
4598
  """
4599
4599
  cookies = self.get_saved_cookies(name)
4600
4600
  self.wait_for_ready_state_complete()
@@ -4606,12 +4606,12 @@ class BaseCase(unittest.TestCase):
4606
4606
  cookie["domain"] = trim_origin
4607
4607
  if "expiry" in cookie and (not expiry or expiry == 0):
4608
4608
  del cookie["expiry"]
4609
+ elif expiry is True:
4610
+ cookie["expiry"] = int(time.time()) + 86400
4609
4611
  elif isinstance(expiry, (int, float)) and expiry < 0:
4610
4612
  pass
4611
4613
  elif isinstance(expiry, (int, float)) and expiry > 0:
4612
4614
  cookie["expiry"] = int(time.time()) + int(expiry * 60.0)
4613
- elif expiry:
4614
- cookie["expiry"] = int(time.time()) + 86400
4615
4615
  self.driver.add_cookie(cookie)
4616
4616
 
4617
4617
  def delete_all_cookies(self):
@@ -4693,9 +4693,9 @@ class BaseCase(unittest.TestCase):
4693
4693
  self.add_cookie({'name': 'foo', 'value': 'bar', 'sameSite': 'Strict'})
4694
4694
  Usage for setting expiry:
4695
4695
  If expiry == 0 or False: Delete "expiry".
4696
+ If expiry is True: Set "expiry" to 24 hours in the future.
4696
4697
  If expiry == -1 (or < 0): Do not modify "expiry".
4697
4698
  If expiry > 0: Set "expiry" to expiry minutes in the future.
4698
- If expiry == True: Set "expiry" to 24 hours in the future.
4699
4699
  """
4700
4700
  self.__check_scope()
4701
4701
  self._check_browser()
@@ -4707,21 +4707,21 @@ class BaseCase(unittest.TestCase):
4707
4707
  cookie["domain"] = trim_origin
4708
4708
  if "expiry" in cookie and (not expiry or expiry == 0):
4709
4709
  del cookie["expiry"]
4710
+ elif expiry is True:
4711
+ cookie["expiry"] = int(time.time()) + 86400
4710
4712
  elif isinstance(expiry, (int, float)) and expiry < 0:
4711
4713
  pass
4712
4714
  elif isinstance(expiry, (int, float)) and expiry > 0:
4713
4715
  cookie["expiry"] = int(time.time()) + int(expiry * 60.0)
4714
- elif expiry:
4715
- cookie["expiry"] = int(time.time()) + 86400
4716
4716
  self.driver.add_cookie(cookie_dict)
4717
4717
 
4718
4718
  def add_cookies(self, cookies, expiry=False):
4719
4719
  """
4720
4720
  Usage for setting expiry:
4721
4721
  If expiry == 0 or False: Delete "expiry".
4722
+ If expiry is True: Set "expiry" to 24 hours in the future.
4722
4723
  If expiry == -1 (or < 0): Do not modify "expiry".
4723
4724
  If expiry > 0: Set "expiry" to expiry minutes in the future.
4724
- If expiry == True: Set "expiry" to 24 hours in the future.
4725
4725
  """
4726
4726
  self.__check_scope()
4727
4727
  self._check_browser()
@@ -4733,12 +4733,12 @@ class BaseCase(unittest.TestCase):
4733
4733
  cookie["domain"] = trim_origin
4734
4734
  if "expiry" in cookie and (not expiry or expiry == 0):
4735
4735
  del cookie["expiry"]
4736
+ elif expiry is True:
4737
+ cookie["expiry"] = int(time.time()) + 86400
4736
4738
  elif isinstance(expiry, (int, float)) and expiry < 0:
4737
4739
  pass
4738
4740
  elif isinstance(expiry, (int, float)) and expiry > 0:
4739
4741
  cookie["expiry"] = int(time.time()) + int(expiry * 60.0)
4740
- elif expiry:
4741
- cookie["expiry"] = int(time.time()) + 86400
4742
4742
  self.driver.add_cookie(cookie)
4743
4743
 
4744
4744
  def __set_esc_skip(self):
@@ -2160,7 +2160,12 @@ def _perform_pytest_unconfigure_(config):
2160
2160
  from seleniumbase.core import proxy_helper
2161
2161
 
2162
2162
  reporter = config.pluginmanager.get_plugin("terminalreporter")
2163
- duration = time.time() - reporter._sessionstarttime
2163
+ start_time = None
2164
+ if hasattr(reporter, "_sessionstarttime"):
2165
+ start_time = reporter._sessionstarttime # (pytest < 8.4.0)
2166
+ else:
2167
+ start_time = reporter._session_start.time # (pytest >= 8.4.0)
2168
+ duration = time.time() - start_time
2164
2169
  if (
2165
2170
  (hasattr(sb_config, "multi_proxy") and not sb_config.multi_proxy)
2166
2171
  or not hasattr(sb_config, "multi_proxy")
@@ -2497,7 +2502,11 @@ def pytest_unconfigure(config):
2497
2502
  if "--co" in sys_argv or "--collect-only" in sys_argv:
2498
2503
  return
2499
2504
  reporter = config.pluginmanager.get_plugin("terminalreporter")
2500
- if not hasattr(reporter, "_sessionstarttime"):
2505
+ if (
2506
+ not hasattr(reporter, "_sessionstarttime")
2507
+ and not hasattr(reporter, "_session_start")
2508
+ and not hasattr(reporter._session_start, "time")
2509
+ ):
2501
2510
  return
2502
2511
  if hasattr(sb_config, "_multithreaded") and sb_config._multithreaded:
2503
2512
  import fasteners
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.39.2
3
+ Version: 4.39.3
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
@@ -63,7 +63,7 @@ Requires-Dist: pip>=25.0.1; python_version < "3.9"
63
63
  Requires-Dist: pip>=25.1.1; python_version >= "3.9"
64
64
  Requires-Dist: packaging>=25.0
65
65
  Requires-Dist: setuptools~=70.2; python_version < "3.10"
66
- Requires-Dist: setuptools>=80.8.0; python_version >= "3.10"
66
+ Requires-Dist: setuptools>=80.9.0; python_version >= "3.10"
67
67
  Requires-Dist: wheel>=0.45.1
68
68
  Requires-Dist: attrs>=25.3.0
69
69
  Requires-Dist: certifi>=2025.4.26
@@ -96,7 +96,7 @@ Requires-Dist: chardet==5.2.0
96
96
  Requires-Dist: charset-normalizer<4,>=3.4.2
97
97
  Requires-Dist: urllib3<2,>=1.26.20; python_version < "3.10"
98
98
  Requires-Dist: urllib3<2.5.0,>=1.26.20; python_version >= "3.10"
99
- Requires-Dist: requests==2.32.3
99
+ Requires-Dist: requests==2.32.4
100
100
  Requires-Dist: sniffio==1.3.1
101
101
  Requires-Dist: h11==0.16.0
102
102
  Requires-Dist: outcome==1.3.0.post0
@@ -115,7 +115,8 @@ Requires-Dist: execnet==2.1.1
115
115
  Requires-Dist: iniconfig==2.1.0
116
116
  Requires-Dist: pluggy==1.5.0; python_version < "3.9"
117
117
  Requires-Dist: pluggy==1.6.0; python_version >= "3.9"
118
- Requires-Dist: pytest==8.3.5
118
+ Requires-Dist: pytest==8.3.5; python_version < "3.9"
119
+ Requires-Dist: pytest==8.4.0; python_version >= "3.9"
119
120
  Requires-Dist: pytest-html==4.0.2
120
121
  Requires-Dist: pytest-metadata==3.1.1
121
122
  Requires-Dist: pytest-ordering==0.6
@@ -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=lKg8cpa3sHnLx8LvY_0AE9MEapr-ETW6w2um2b_KvJA,46
6
+ seleniumbase/__version__.py,sha256=nTUvL9_RRWHzoBJZ-PxE0bdg5Ws2Y35U5sdL7LXHfRU,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
@@ -65,7 +65,7 @@ seleniumbase/extensions/disable_csp.zip,sha256=5RvomXnm2PdivUVcxTV6jfvD8WhTEsQYH
65
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
- seleniumbase/fixtures/base_case.py,sha256=zlF10aFjJdRUS6nT9ksvcXPdyD7A_mlFyAgEuQkVRj4,727097
68
+ seleniumbase/fixtures/base_case.py,sha256=N9EIcW_YSkmH9N-dS9ksPOu799AOARry_lnSXwwW9oU,727121
69
69
  seleniumbase/fixtures/constants.py,sha256=WMrItuNyKq3XVJ64NluLIRc4gJCxDw8K8qXED0b9S2w,13752
70
70
  seleniumbase/fixtures/css_to_xpath.py,sha256=9ouDB1xl4MJ2os6JOgTIAyHKOQfuxtxvXC3O5hSnEKA,1954
71
71
  seleniumbase/fixtures/errors.py,sha256=KyxuEVx_e3MPhVrJfNIa_3ltMpbCFxfy_jxK8RFNTns,555
@@ -88,7 +88,7 @@ seleniumbase/plugins/basic_test_info.py,sha256=8ov6n417gPbqqvrlT4zrch7l2XcRt-GF2
88
88
  seleniumbase/plugins/db_reporting_plugin.py,sha256=En09qUCoojrk9-vbcnsoHdSELoGmag2GDIyu3jTiJas,7331
89
89
  seleniumbase/plugins/driver_manager.py,sha256=VSYQgDDA2t34gi-3qPkw5Ef9SX8sVQX3RETHOihyKHc,36558
90
90
  seleniumbase/plugins/page_source.py,sha256=loTnXxOj4kxEukuTZEiGyvKBhY3KDVDMnNlHHheTBDE,1889
91
- seleniumbase/plugins/pytest_plugin.py,sha256=952AIyaH-PdmNksoeXjzhXxoc8Z53yV-WPjlrHhp2OM,108382
91
+ seleniumbase/plugins/pytest_plugin.py,sha256=dijsJuCsKo8LmhJ4NvXnYJyUiSFhbGdkzd6a4vy-3DQ,108709
92
92
  seleniumbase/plugins/s3_logging_plugin.py,sha256=WDfertQgGOW_SRJpFMaekYD6vBVW9VO62POtXXy2HCM,2319
93
93
  seleniumbase/plugins/sb_manager.py,sha256=ulTDorccan06eVYtSqlX26EFKXmS0gCY0huJ67Q5gTY,58082
94
94
  seleniumbase/plugins/screen_shots.py,sha256=1hrXw-hzuZ1BR6Yh7AyWX2ABnvnP73-RCbwdz958gj4,1127
@@ -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.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,,
138
+ seleniumbase-4.39.3.dist-info/licenses/LICENSE,sha256=BRblZsX7HyPUjQmYTiyWr_e9tzWvmR3R4SFclM2R3W0,1085
139
+ seleniumbase-4.39.3.dist-info/METADATA,sha256=HP5hNOGCz7XYhzmE5bggasu-3gJpnSobclAGUsCGc24,87284
140
+ seleniumbase-4.39.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
141
+ seleniumbase-4.39.3.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
142
+ seleniumbase-4.39.3.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
143
+ seleniumbase-4.39.3.dist-info/RECORD,,