seleniumbase 4.25.0__py3-none-any.whl → 4.25.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.25.0"
2
+ __version__ = "4.25.2"
@@ -4308,25 +4308,8 @@ class BaseCase(unittest.TestCase):
4308
4308
 
4309
4309
  def load_cookies(self, name="cookies.txt"):
4310
4310
  """Loads the page cookies from the "saved_cookies" folder."""
4311
+ cookies = self.get_saved_cookies(name)
4311
4312
  self.wait_for_ready_state_complete()
4312
- if name.endswith("/"):
4313
- raise Exception("Invalid filename for Cookies!")
4314
- if "/" in name:
4315
- name = name.split("/")[-1]
4316
- if "\\" in name:
4317
- name = name.split("\\")[-1]
4318
- if len(name) < 1:
4319
- raise Exception("Filename for Cookies is too short!")
4320
- if not name.endswith(".txt"):
4321
- name = name + ".txt"
4322
- folder = constants.SavedCookies.STORAGE_FOLDER
4323
- abs_path = os.path.abspath(".")
4324
- file_path = os.path.join(abs_path, folder)
4325
- cookies_file_path = os.path.join(file_path, name)
4326
- json_cookies = None
4327
- with open(cookies_file_path, "r") as f:
4328
- json_cookies = f.read().strip()
4329
- cookies = json.loads(json_cookies)
4330
4313
  for cookie in cookies:
4331
4314
  if "expiry" in cookie:
4332
4315
  del cookie["expiry"]
@@ -4363,6 +4346,46 @@ class BaseCase(unittest.TestCase):
4363
4346
  if cookies_file_path.endswith(".txt"):
4364
4347
  os.remove(cookies_file_path)
4365
4348
 
4349
+ def get_saved_cookies(self, name="cookies.txt"):
4350
+ """Gets the page cookies from the "saved_cookies" folder."""
4351
+ if name.endswith("/"):
4352
+ raise Exception("Invalid filename for Cookies!")
4353
+ if "/" in name:
4354
+ name = name.split("/")[-1]
4355
+ if "\\" in name:
4356
+ name = name.split("\\")[-1]
4357
+ if len(name) < 1:
4358
+ raise Exception("Filename for Cookies is too short!")
4359
+ if not name.endswith(".txt"):
4360
+ name = name + ".txt"
4361
+ folder = constants.SavedCookies.STORAGE_FOLDER
4362
+ abs_path = os.path.abspath(".")
4363
+ file_path = os.path.join(abs_path, folder)
4364
+ cookies_file_path = os.path.join(file_path, name)
4365
+ json_cookies = None
4366
+ with open(cookies_file_path, "r") as f:
4367
+ json_cookies = f.read().strip()
4368
+ return json.loads(json_cookies)
4369
+
4370
+ def get_cookie(self, name):
4371
+ return self.driver.get_cookie(name)
4372
+
4373
+ def get_cookies(self):
4374
+ return self.driver.get_cookies()
4375
+
4376
+ def add_cookie(self, cookie_dict):
4377
+ """Usage examples:
4378
+ self.add_cookie({'name': 'foo', 'value': 'bar'})
4379
+ self.add_cookie({'name': 'foo', 'value': 'bar', 'path': '/'})
4380
+ self.add_cookie({'name': 'foo', 'value': 'bar', 'secure': True})
4381
+ self.add_cookie({'name': 'foo', 'value': 'bar', 'sameSite': 'Strict'})
4382
+ """
4383
+ self.driver.add_cookie(cookie_dict)
4384
+
4385
+ def add_cookies(self, cookies):
4386
+ for cookie_dict in cookies:
4387
+ self.driver.add_cookie(cookie_dict)
4388
+
4366
4389
  def wait_for_ready_state_complete(self, timeout=None):
4367
4390
  """Waits for the "readyState" of the page to be "complete".
4368
4391
  Returns True when the method completes."""
@@ -8718,6 +8741,14 @@ class BaseCase(unittest.TestCase):
8718
8741
  """Same as self.delete_all_cookies()"""
8719
8742
  self.delete_all_cookies()
8720
8743
 
8744
+ def delete_local_storage(self):
8745
+ """Same as self.clear_local_storage()"""
8746
+ self.clear_local_storage()
8747
+
8748
+ def delete_session_storage(self):
8749
+ """Same as clear_session_storage()"""
8750
+ self.clear_session_storage()
8751
+
8721
8752
  def assert_no_broken_links(self, multithreaded=True):
8722
8753
  """Same as self.assert_no_404_errors()"""
8723
8754
  self.assert_no_404_errors(multithreaded=multithreaded)
@@ -1,3 +1,4 @@
1
+ import re
1
2
  import selenium.webdriver.remote.webelement
2
3
  from seleniumbase.fixtures import js_utils
3
4
 
@@ -17,6 +18,8 @@ class WebElement(selenium.webdriver.remote.webelement.WebElement):
17
18
  delayed_click = True
18
19
  if delayed_click and ":contains" not in selector:
19
20
  selector = js_utils.convert_to_css_selector(selector, by)
21
+ selector = re.escape(selector)
22
+ selector = js_utils.escape_quotes_if_needed(selector)
20
23
  script = 'document.querySelector("%s").click();' % selector
21
24
  js_utils.call_me_later(driver, script, 111)
22
25
  else:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: seleniumbase
3
- Version: 4.25.0
3
+ Version: 4.25.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
@@ -79,7 +79,6 @@ Requires-Dist: wsproto ==1.2.0
79
79
  Requires-Dist: cssselect ==1.2.0
80
80
  Requires-Dist: sortedcontainers ==2.4.0
81
81
  Requires-Dist: fasteners ==0.19
82
- Requires-Dist: execnet ==2.0.2
83
82
  Requires-Dist: iniconfig ==2.0.0
84
83
  Requires-Dist: py ==1.11.0
85
84
  Requires-Dist: pytest-html ==2.0.1
@@ -105,6 +104,7 @@ Requires-Dist: filelock >=3.12.2 ; python_version < "3.8"
105
104
  Requires-Dist: platformdirs >=4.0.0 ; python_version < "3.8"
106
105
  Requires-Dist: trio ==0.22.2 ; python_version < "3.8"
107
106
  Requires-Dist: selenium ==4.11.2 ; python_version < "3.8"
107
+ Requires-Dist: execnet ==2.0.2 ; python_version < "3.8"
108
108
  Requires-Dist: pluggy ==1.2.0 ; python_version < "3.8"
109
109
  Requires-Dist: pytest ==7.4.4 ; python_version < "3.8"
110
110
  Requires-Dist: pytest-metadata ==3.0.0 ; python_version < "3.8"
@@ -116,9 +116,10 @@ Requires-Dist: setuptools >=69.2.0 ; python_version >= "3.8"
116
116
  Requires-Dist: wheel >=0.43.0 ; python_version >= "3.8"
117
117
  Requires-Dist: filelock >=3.13.3 ; python_version >= "3.8"
118
118
  Requires-Dist: platformdirs >=4.2.0 ; python_version >= "3.8"
119
- Requires-Dist: typing-extensions >=4.10.0 ; python_version >= "3.8"
119
+ Requires-Dist: typing-extensions >=4.11.0 ; python_version >= "3.8"
120
120
  Requires-Dist: trio ==0.25.0 ; python_version >= "3.8"
121
121
  Requires-Dist: selenium ==4.19.0 ; python_version >= "3.8"
122
+ Requires-Dist: execnet ==2.1.0 ; python_version >= "3.8"
122
123
  Requires-Dist: pluggy ==1.4.0 ; python_version >= "3.8"
123
124
  Requires-Dist: pytest ==8.1.1 ; python_version >= "3.8"
124
125
  Requires-Dist: pytest-metadata ==3.1.1 ; python_version >= "3.8"
@@ -126,14 +127,14 @@ Requires-Dist: pytest-rerunfailures ==14.0 ; python_version >= "3.8"
126
127
  Requires-Dist: soupsieve ==2.5 ; python_version >= "3.8"
127
128
  Requires-Dist: markdown-it-py ==3.0.0 ; python_version >= "3.8"
128
129
  Provides-Extra: allure
129
- Requires-Dist: allure-pytest ==2.13.4 ; extra == 'allure'
130
- Requires-Dist: allure-python-commons ==2.13.4 ; extra == 'allure'
131
- Requires-Dist: allure-behave ==2.13.4 ; extra == 'allure'
130
+ Requires-Dist: allure-pytest >=2.13.5 ; extra == 'allure'
131
+ Requires-Dist: allure-python-commons >=2.13.5 ; extra == 'allure'
132
+ Requires-Dist: allure-behave >=2.13.5 ; extra == 'allure'
132
133
  Provides-Extra: coverage
133
134
  Requires-Dist: coverage ==7.2.7 ; (python_version < "3.8") and extra == 'coverage'
134
135
  Requires-Dist: pytest-cov ==4.1.0 ; (python_version < "3.8") and extra == 'coverage'
135
- Requires-Dist: coverage ==7.4.4 ; (python_version >= "3.8") and extra == 'coverage'
136
- Requires-Dist: pytest-cov ==5.0.0 ; (python_version >= "3.8") and extra == 'coverage'
136
+ Requires-Dist: coverage >=7.4.4 ; (python_version >= "3.8") and extra == 'coverage'
137
+ Requires-Dist: pytest-cov >=5.0.0 ; (python_version >= "3.8") and extra == 'coverage'
137
138
  Provides-Extra: flake8
138
139
  Requires-Dist: mccabe ==0.7.0 ; extra == 'flake8'
139
140
  Requires-Dist: flake8 ==5.0.4 ; (python_version < "3.9") and extra == 'flake8'
@@ -155,7 +156,7 @@ Requires-Dist: cffi ==1.16.0 ; (python_version >= "3.8") and extra == 'pdfminer'
155
156
  Requires-Dist: cryptography ==42.0.5 ; (python_version >= "3.9") and extra == 'pdfminer'
156
157
  Provides-Extra: pillow
157
158
  Requires-Dist: Pillow ==9.5.0 ; (python_version < "3.8") and extra == 'pillow'
158
- Requires-Dist: Pillow ==10.2.0 ; (python_version >= "3.8") and extra == 'pillow'
159
+ Requires-Dist: Pillow >=10.3.0 ; (python_version >= "3.8") and extra == 'pillow'
159
160
  Provides-Extra: pip-system-certs
160
161
  Requires-Dist: pip-system-certs ==4.0 ; (platform_system == "Windows") and extra == 'pip-system-certs'
161
162
  Provides-Extra: proxy
@@ -180,9 +181,10 @@ Requires-Dist: zstandard ==0.22.0 ; extra == 'selenium-wire'
180
181
 
181
182
  <h1>SeleniumBase</h1>
182
183
 
183
- <p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/sb_logo_10t.png" alt="SeleniumBase" title="SeleniumBase" width="266" /></a></p>
184
+ <p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_i.png" alt="SeleniumBase" title="SeleniumBase" width="400" /></a></p>
184
185
 
185
- <p align="center" class="hero__title"><b>All-in-one Browser Automation Framework:<br />Web Crawling / Scraping / Testing / Reporting</b></p>
186
+
187
+ <p align="center" class="hero__title"><b>All-in-one Browser Automation Framework:<br />Web Crawling / Testing / Scraping / Stealth</b></p>
186
188
 
187
189
  <p align="center"><a href="https://pypi.python.org/pypi/seleniumbase" target="_blank"><img src="https://img.shields.io/pypi/v/seleniumbase.svg?color=3399EE" alt="PyPI version" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/releases" target="_blank"><img src="https://img.shields.io/github/v/release/seleniumbase/SeleniumBase.svg?color=22AAEE" alt="GitHub version" /></a> <a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/actions" target="_blank"><img src="https://github.com/seleniumbase/SeleniumBase/workflows/CI%20build/badge.svg" alt="SeleniumBase GitHub Actions" /></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></p>
188
190
 
@@ -226,15 +228,19 @@ Requires-Dist: zstandard ==0.22.0 ; extra == 'selenium-wire'
226
228
 
227
229
  --------
228
230
 
229
- 📚 Learn from [**over 200 examples** in the **SeleniumBase/examples/**](https://github.com/seleniumbase/SeleniumBase/tree/master/examples) folder.
231
+ 📚 Learn from [**over 200 examples** in the **SeleniumBase/examples/** folder](https://github.com/seleniumbase/SeleniumBase/tree/master/examples).
232
+
233
+ 👤 Note that <span translate="no">SeleniumBase</span> <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/uc_mode.md">UC Mode / Stealth Mode has its own ReadMe</a>.
230
234
 
231
- <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py">my_first_test.py</a>, which covers login, shopping, and checkout:</p>
235
+ ℹ️ Scripts can be called via <code translate="no"><b>python</b></code>, although some <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/syntax_formats.md">Syntax Formats</a> expect <a href="https://docs.pytest.org/en/latest/how-to/usage.html" translate="no"><b>pytest</b></a> (a Python unit-testing framework included with SeleniumBase that can discover & collect tests automatically).
236
+
237
+ <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py">my_first_test.py</a>, which tests login, shopping, and checkout:</p>
232
238
 
233
239
  ```bash
234
240
  pytest my_first_test.py
235
241
  ```
236
242
 
237
- <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="480" /></a>
243
+ <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="520" /></a>
238
244
 
239
245
  > ``pytest`` uses ``--chrome`` by default unless set differently.
240
246
 
@@ -246,7 +252,7 @@ pytest my_first_test.py
246
252
  pytest test_coffee_cart.py --demo
247
253
  ```
248
254
 
249
- <p align="left"><a href="https://seleniumbase.io/coffee/" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/coffee_cart.gif" width="480" alt="SeleniumBase Coffee Cart Test" title="SeleniumBase Coffee Cart Test" /></a></p>
255
+ <p align="left"><a href="https://seleniumbase.io/coffee/" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/coffee_cart.gif" width="520" alt="SeleniumBase Coffee Cart Test" title="SeleniumBase Coffee Cart Test" /></a></p>
250
256
 
251
257
  > <p>(<code translate="no">--demo</code> mode slows down tests and highlights actions)</p>
252
258
 
@@ -260,7 +266,7 @@ pytest test_coffee_cart.py --demo
260
266
  pytest test_demo_site.py
261
267
  ```
262
268
 
263
- <p align="left"><a href="https://seleniumbase.io/demo_page" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/demo_page_5.gif" width="480" alt="SeleniumBase Example" title="SeleniumBase Example" /></a></p>
269
+ <p align="left"><a href="https://seleniumbase.io/demo_page" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/demo_page_5.gif" width="520" alt="SeleniumBase Example" title="SeleniumBase Example" /></a></p>
264
270
 
265
271
  > Easy to type, click, select, toggle, drag & drop, and more.
266
272
 
@@ -563,7 +569,7 @@ cd examples/
563
569
  pytest my_first_test.py
564
570
  ```
565
571
 
566
- <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="480" /></a>
572
+ <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="520" /></a>
567
573
 
568
574
  <p align="left"><b>Here's the code for <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py">my_first_test.py</a>:</b></p>
569
575
 
@@ -1004,7 +1010,7 @@ python -m http.server 1948
1004
1010
  pytest test_suite.py test_image_saving.py --dashboard --rs --headless
1005
1011
  ```
1006
1012
 
1007
- <img src="https://seleniumbase.github.io/cdn/img/dashboard_2.png" alt="The SeleniumBase Dashboard" title="The SeleniumBase Dashboard" width="480" />
1013
+ <img src="https://seleniumbase.github.io/cdn/img/dashboard_2.png" alt="The SeleniumBase Dashboard" title="The SeleniumBase Dashboard" width="520" />
1008
1014
 
1009
1015
  --------
1010
1016
 
@@ -1059,7 +1065,7 @@ pynose test_suite.py --report
1059
1065
  behave behave_bdd/features/ -D dashboard -D headless
1060
1066
  ```
1061
1067
 
1062
- <img src="https://seleniumbase.github.io/cdn/img/sb_behave_dashboard.png" title="SeleniumBase" width="500">
1068
+ <img src="https://seleniumbase.github.io/cdn/img/sb_behave_dashboard.png" title="SeleniumBase" width="520">
1063
1069
 
1064
1070
  You can also use ``--junit`` to get ``.xml`` reports for each <code translate="no">behave</code> feature. Jenkins can use these files to display better reporting for your tests.
1065
1071
 
@@ -1521,11 +1527,13 @@ pytest --reruns=1 --reruns-delay=1
1521
1527
 
1522
1528
  <p>
1523
1529
  <div><b>If you see something, say something!</b></div>
1524
- <div><a href="https://github.com/seleniumbase/SeleniumBase/issues?q=is%3Aissue+is%3Aclosed"><img src="https://img.shields.io/github/issues-closed-raw/seleniumbase/SeleniumBase.svg?color=22BB88" title="Closed Issues" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/pulls?q=is%3Apr+is%3Aclosed"><img src="https://img.shields.io/github/issues-pr-closed/seleniumbase/SeleniumBase.svg?logo=github&logoColor=white&color=22BB99" title="Closed Pull Requests" /></a></div>
1530
+ <div><a href="https://github.com/seleniumbase/SeleniumBase/issues?q=is%3Aissue+is%3Aclosed"><img src="https://img.shields.io/github/issues-closed-raw/seleniumbase/SeleniumBase.svg?color=22BB88" title="Closed Issues" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/pulls?q=is%3Apr+is%3Aclosed"><img src="https://img.shields.io/github/issues-pr-closed/seleniumbase/SeleniumBase.svg?logo=github&logoColor=white&color=22BB99" title="Closed Pull Requests" /></a></div>
1525
1531
  </p>
1526
1532
 
1527
1533
  <p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/sb_logo_10t.png" alt="SeleniumBase" title="SeleniumBase" width="266" /></a></p>
1528
1534
 
1535
+ <a href="https://pypi.org/project/seleniumbase/" target="_blank"><img src="https://img.shields.io/pypi/pyversions/seleniumbase.svg?color=22AAEE&logo=python&logoColor=FEDC54" title="Supported Python Versions" /></a>
1536
+
1529
1537
  <p><div>
1530
1538
  <span><a href="https://www.youtube.com/playlist?list=PLp9uKicxkBc5UIlGi2BuE3aWC7JyXpD3m"><img src="https://seleniumbase.github.io/cdn/img/youtube.png" title="SeleniumBase Playlist on YouTube" alt="SeleniumBase Playlist on YouTube" width="68" /></a></span>
1531
1539
  <span><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://seleniumbase.github.io/img/social/share_github.svg" title="SeleniumBase on GitHub" alt="SeleniumBase on GitHub" width="62" /></a></span>
@@ -1535,11 +1543,8 @@ pytest --reruns=1 --reruns-delay=1
1535
1543
 
1536
1544
  <p><div><b><a href="https://github.com/mdmintz">https://github.com/mdmintz</a></b></div></p>
1537
1545
 
1538
- <div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/fancy_logo_14.png" title="SeleniumBase" width="240" /></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> <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://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>
1546
+ <div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb.png" title="SeleniumBase" width="240" /></a></div>
1547
+ <div><a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></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://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>
1539
1548
  <div><a href="https://pepy.tech/project/seleniumbase" target="_blank"><img src="https://static.pepy.tech/badge/seleniumbase" alt="SeleniumBase PyPI downloads" /></a></div>
1540
1549
  <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>
1541
-
1542
- --------
1543
-
1544
- <p><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb.png" alt="SeleniumBase" title="SeleniumBase" width="300" /></a></p>
1545
- <p><a href="https://pypi.org/project/seleniumbase/" target="_blank"><img src="https://img.shields.io/pypi/pyversions/seleniumbase.svg?color=22AAEE&logo=python&logoColor=FEDC54" title="Supported Python Versions" /></a></p>
1550
+ <div align="left"><img src="https://views.whatilearened.today/views/github/seleniumbase/SeleniumBase.svg" width="124px" height="28px" alt="Views" /></div>
@@ -5,7 +5,7 @@ sbase/steps.py,sha256=bKT_u5bJkKzYWEuAXi9NVVRYYxQRCM1_YJUrNFFRVPY,42865
5
5
  seleniumbase/ReadMe.md,sha256=4nEdto4d0Ch0Zneg0yAC-RBBdqRqPUP0SCo-ze_XDPM,3612
6
6
  seleniumbase/__init__.py,sha256=Mw4ShIWUF2Efjx-JuwUQLWF9nIbxcX-vu9AOGBp32ec,2123
7
7
  seleniumbase/__main__.py,sha256=dn1p6dgCchmcH1zzTzzQvFwwdQQqnTGH6ULV9m4hv24,654
8
- seleniumbase/__version__.py,sha256=KSzvln4mFv8ChtLQFgg4f_icZ0x9lEj-1w9M2uIQb3o,46
8
+ seleniumbase/__version__.py,sha256=CiaJysHLIU0MrZTrLtg43WBskbxNWeWKIqMlkEt1lNg,46
9
9
  seleniumbase/behave/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  seleniumbase/behave/behave_helper.py,sha256=elkl8P9eLulRAioLstE9baYNM9N_PHBmAOcajX-pH_Y,24198
11
11
  seleniumbase/behave/behave_sb.py,sha256=rpSKGufjzKeoiTqsr1HChNu1fY68CMirr5mgff--LHs,56291
@@ -70,7 +70,7 @@ seleniumbase/extensions/disable_csp.zip,sha256=YMifIIgEBiLrEFrS1sfW4Exh4br1V4oK1
70
70
  seleniumbase/extensions/recorder.zip,sha256=dE3-vt1lsIyMbz3MD0WboizA5KiR3SH2jxAMrC0T_cU,11908
71
71
  seleniumbase/extensions/sbase_ext.zip,sha256=3s1N8zrVaMz8RQEOIoBzC3KDjtmHwVZRvVsX25Odr_s,8175
72
72
  seleniumbase/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
- seleniumbase/fixtures/base_case.py,sha256=3mqQFcrMnT6-AEWuUnCxn4uAX-EAipCJhhiH8I_5XpE,686935
73
+ seleniumbase/fixtures/base_case.py,sha256=bLh4Q9SEVwY0pkNdxa5BFTjIT-v7TUCpLCUblofcTdg,688014
74
74
  seleniumbase/fixtures/constants.py,sha256=Uvr5-Z8ZfiE2-lIqJS1CQ0tkmQ6qJYooCOTo_HMleo4,13348
75
75
  seleniumbase/fixtures/css_to_xpath.py,sha256=9ouDB1xl4MJ2os6JOgTIAyHKOQfuxtxvXC3O5hSnEKA,1954
76
76
  seleniumbase/fixtures/errors.py,sha256=KyxuEVx_e3MPhVrJfNIa_3ltMpbCFxfy_jxK8RFNTns,555
@@ -120,7 +120,7 @@ seleniumbase/undetected/dprocess.py,sha256=WWQ_X_-Q7Lfx1m6oxkYHU0eTIc76Jodph4n1Q
120
120
  seleniumbase/undetected/options.py,sha256=SGuz8iqlVPYN7IexNiGauupWF0xP3mqO72-9tgIqeuI,2999
121
121
  seleniumbase/undetected/patcher.py,sha256=u8X3uFBCTJ4XcU09AWpbDyPc-dm2LM-YeuciCp5AEdM,10853
122
122
  seleniumbase/undetected/reactor.py,sha256=UT1pEnGaTPZT7-0-xKROk9_eWDZueGzSUrCksc22nyA,2883
123
- seleniumbase/undetected/webelement.py,sha256=RXOxTRZStVgtOASkGGA_0dnhrATMIG4-NVw3dvIqIME,1247
123
+ seleniumbase/undetected/webelement.py,sha256=k0usjlaiYyhdrmoopSCJBrsrKNx4csZT9bqfI30Hckc,1377
124
124
  seleniumbase/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
125
  seleniumbase/utilities/selenium_grid/ReadMe.md,sha256=Uqvn4KmhaMY_jrhcsxL2WptCukPq1J3Yz-9WenCXEu0,3599
126
126
  seleniumbase/utilities/selenium_grid/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -137,9 +137,9 @@ seleniumbase/utilities/selenium_grid/start-grid-hub.sh,sha256=KADv0RUHONLL2_I443
137
137
  seleniumbase/utilities/selenium_ide/ReadMe.md,sha256=hznGeuMpkIimqMiZBW-4goIy2ltW4l8X9kb0YSPUQfE,4483
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.25.0.dist-info/LICENSE,sha256=odSYtWibXBnQ1gBg6CnDZ82n8kLF_if5-2nbqnEyD8k,1085
141
- seleniumbase-4.25.0.dist-info/METADATA,sha256=QnnZkS4EmD-AvLLF246W5KELQveBruWPxuc0JgISwXY,84122
142
- seleniumbase-4.25.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
143
- seleniumbase-4.25.0.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
144
- seleniumbase-4.25.0.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
145
- seleniumbase-4.25.0.dist-info/RECORD,,
140
+ seleniumbase-4.25.2.dist-info/LICENSE,sha256=odSYtWibXBnQ1gBg6CnDZ82n8kLF_if5-2nbqnEyD8k,1085
141
+ seleniumbase-4.25.2.dist-info/METADATA,sha256=iarPktpbZ60NMvqazzU2WLO_GNKqAk2VcEmBttR4gA0,84773
142
+ seleniumbase-4.25.2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
143
+ seleniumbase-4.25.2.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
144
+ seleniumbase-4.25.2.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
145
+ seleniumbase-4.25.2.dist-info/RECORD,,