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.
- seleniumbase/__version__.py +1 -1
- seleniumbase/fixtures/base_case.py +49 -18
- seleniumbase/undetected/webelement.py +3 -0
- {seleniumbase-4.25.0.dist-info → seleniumbase-4.25.2.dist-info}/METADATA +31 -26
- {seleniumbase-4.25.0.dist-info → seleniumbase-4.25.2.dist-info}/RECORD +9 -9
- {seleniumbase-4.25.0.dist-info → seleniumbase-4.25.2.dist-info}/LICENSE +0 -0
- {seleniumbase-4.25.0.dist-info → seleniumbase-4.25.2.dist-info}/WHEEL +0 -0
- {seleniumbase-4.25.0.dist-info → seleniumbase-4.25.2.dist-info}/entry_points.txt +0 -0
- {seleniumbase-4.25.0.dist-info → seleniumbase-4.25.2.dist-info}/top_level.txt +0 -0
seleniumbase/__version__.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
# seleniumbase package
|
2
|
-
__version__ = "4.25.
|
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.
|
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.
|
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
|
130
|
-
Requires-Dist: allure-python-commons
|
131
|
-
Requires-Dist: allure-behave
|
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
|
136
|
-
Requires-Dist: pytest-cov
|
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
|
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/
|
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
|
-
|
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)
|
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
|
-
<
|
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="
|
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="
|
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="
|
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="
|
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="
|
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="
|
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>
|
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/
|
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=
|
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=
|
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=
|
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.
|
141
|
-
seleniumbase-4.25.
|
142
|
-
seleniumbase-4.25.
|
143
|
-
seleniumbase-4.25.
|
144
|
-
seleniumbase-4.25.
|
145
|
-
seleniumbase-4.25.
|
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,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|