seleniumbase 4.32.12__py3-none-any.whl → 4.33.0__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/core/browser_launcher.py +5 -4
- seleniumbase/core/sb_cdp.py +8 -8
- seleniumbase/core/sb_driver.py +31 -0
- seleniumbase/fixtures/base_case.py +35 -0
- seleniumbase/fixtures/js_utils.py +8 -0
- seleniumbase/plugins/sb_manager.py +7 -1
- {seleniumbase-4.32.12.dist-info → seleniumbase-4.33.0.dist-info}/METADATA +19 -18
- {seleniumbase-4.32.12.dist-info → seleniumbase-4.33.0.dist-info}/RECORD +13 -13
- {seleniumbase-4.32.12.dist-info → seleniumbase-4.33.0.dist-info}/WHEEL +1 -1
- {seleniumbase-4.32.12.dist-info → seleniumbase-4.33.0.dist-info}/LICENSE +0 -0
- {seleniumbase-4.32.12.dist-info → seleniumbase-4.33.0.dist-info}/entry_points.txt +0 -0
- {seleniumbase-4.32.12.dist-info → seleniumbase-4.33.0.dist-info}/top_level.txt +0 -0
seleniumbase/__version__.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
# seleniumbase package
|
2
|
-
__version__ = "4.
|
2
|
+
__version__ = "4.33.0"
|
@@ -216,8 +216,10 @@ def extend_driver(driver):
|
|
216
216
|
driver.get_text = DM.get_text
|
217
217
|
driver.get_active_element_css = DM.get_active_element_css
|
218
218
|
driver.get_locale_code = DM.get_locale_code
|
219
|
+
driver.get_screen_rect = DM.get_screen_rect
|
219
220
|
driver.get_origin = DM.get_origin
|
220
221
|
driver.get_user_agent = DM.get_user_agent
|
222
|
+
driver.get_cookie_string = DM.get_cookie_string
|
221
223
|
driver.highlight = DM.highlight
|
222
224
|
driver.highlight_click = DM.highlight_click
|
223
225
|
driver.highlight_if_visible = DM.highlight_if_visible
|
@@ -234,6 +236,7 @@ def extend_driver(driver):
|
|
234
236
|
driver.switch_to_window = DM.switch_to_window
|
235
237
|
driver.switch_to_tab = DM.switch_to_tab
|
236
238
|
driver.switch_to_frame = DM.switch_to_frame
|
239
|
+
driver.reset_window_size = DM.reset_window_size
|
237
240
|
if hasattr(driver, "proxy"):
|
238
241
|
driver.set_wire_proxy = DM.set_wire_proxy
|
239
242
|
return driver
|
@@ -2447,10 +2450,8 @@ def _set_firefox_options(
|
|
2447
2450
|
firefox_arg_list = firefox_arg.split(",")
|
2448
2451
|
for firefox_arg_item in firefox_arg_list:
|
2449
2452
|
firefox_arg_item = firefox_arg_item.strip()
|
2450
|
-
if not firefox_arg_item.startswith("
|
2451
|
-
if firefox_arg_item.
|
2452
|
-
firefox_arg_item = "-" + firefox_arg_item
|
2453
|
-
else:
|
2453
|
+
if not firefox_arg_item.startswith("-"):
|
2454
|
+
if firefox_arg_item.count(os.sep) == 0:
|
2454
2455
|
firefox_arg_item = "--" + firefox_arg_item
|
2455
2456
|
if len(firefox_arg_item) >= 3:
|
2456
2457
|
options.add_argument(firefox_arg_item)
|
seleniumbase/core/sb_cdp.py
CHANGED
@@ -551,7 +551,7 @@ class CDPMethods():
|
|
551
551
|
if (width != 0 or height != 0):
|
552
552
|
element.click()
|
553
553
|
click_count += 1
|
554
|
-
time.sleep(0.
|
554
|
+
time.sleep(0.044)
|
555
555
|
self.__slow_mode_pause_if_set()
|
556
556
|
self.loop.run_until_complete(self.page.wait())
|
557
557
|
except Exception:
|
@@ -668,10 +668,10 @@ class CDPMethods():
|
|
668
668
|
text = text[:-1]
|
669
669
|
for key in text:
|
670
670
|
element.send_keys(key)
|
671
|
-
time.sleep(0.
|
671
|
+
time.sleep(0.044)
|
672
672
|
if submit:
|
673
673
|
element.send_keys("\r\n")
|
674
|
-
time.sleep(0.
|
674
|
+
time.sleep(0.044)
|
675
675
|
self.__slow_mode_pause_if_set()
|
676
676
|
self.loop.run_until_complete(self.page.wait())
|
677
677
|
|
@@ -741,7 +741,7 @@ class CDPMethods():
|
|
741
741
|
return
|
742
742
|
elif self.get_window()[1].window_state.value == "minimized":
|
743
743
|
self.loop.run_until_complete(self.page.maximize())
|
744
|
-
time.sleep(0.
|
744
|
+
time.sleep(0.044)
|
745
745
|
return self.loop.run_until_complete(self.page.maximize())
|
746
746
|
|
747
747
|
def minimize(self):
|
@@ -751,7 +751,7 @@ class CDPMethods():
|
|
751
751
|
def medimize(self):
|
752
752
|
if self.get_window()[1].window_state.value == "minimized":
|
753
753
|
self.loop.run_until_complete(self.page.medimize())
|
754
|
-
time.sleep(0.
|
754
|
+
time.sleep(0.044)
|
755
755
|
return self.loop.run_until_complete(self.page.medimize())
|
756
756
|
|
757
757
|
def set_window_rect(self, x, y, width, height):
|
@@ -760,7 +760,7 @@ class CDPMethods():
|
|
760
760
|
self.page.set_window_size(
|
761
761
|
left=x, top=y, width=width, height=height)
|
762
762
|
)
|
763
|
-
time.sleep(0.
|
763
|
+
time.sleep(0.044)
|
764
764
|
return self.loop.run_until_complete(
|
765
765
|
self.page.set_window_size(
|
766
766
|
left=x, top=y, width=width, height=height)
|
@@ -1125,7 +1125,7 @@ class CDPMethods():
|
|
1125
1125
|
)
|
1126
1126
|
with gui_lock:
|
1127
1127
|
pyautogui.press(key)
|
1128
|
-
time.sleep(0.
|
1128
|
+
time.sleep(0.044)
|
1129
1129
|
self.__slow_mode_pause_if_set()
|
1130
1130
|
self.loop.run_until_complete(self.page.wait())
|
1131
1131
|
|
@@ -1139,7 +1139,7 @@ class CDPMethods():
|
|
1139
1139
|
with gui_lock:
|
1140
1140
|
for key in keys:
|
1141
1141
|
pyautogui.press(key)
|
1142
|
-
time.sleep(0.
|
1142
|
+
time.sleep(0.044)
|
1143
1143
|
self.__slow_mode_pause_if_set()
|
1144
1144
|
self.loop.run_until_complete(self.page.wait())
|
1145
1145
|
|
seleniumbase/core/sb_driver.py
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
"""Add new methods to extend the driver"""
|
2
2
|
from contextlib import suppress
|
3
3
|
from selenium.webdriver.remote.webelement import WebElement
|
4
|
+
from seleniumbase.config import settings
|
4
5
|
from seleniumbase.fixtures import js_utils
|
5
6
|
from seleniumbase.fixtures import page_actions
|
6
7
|
from seleniumbase.fixtures import page_utils
|
@@ -189,6 +190,8 @@ class DriverMethods():
|
|
189
190
|
return False
|
190
191
|
|
191
192
|
def is_online(self):
|
193
|
+
if self.__is_cdp_swap_needed():
|
194
|
+
return self.driver.cdp.evaluate("navigator.onLine;")
|
192
195
|
return self.driver.execute_script("return navigator.onLine;")
|
193
196
|
|
194
197
|
def is_connected(self):
|
@@ -231,17 +234,35 @@ class DriverMethods():
|
|
231
234
|
return page_actions.get_text(self.driver, *args, **kwargs)
|
232
235
|
|
233
236
|
def get_active_element_css(self, *args, **kwargs):
|
237
|
+
if self.__is_cdp_swap_needed():
|
238
|
+
return self.driver.cdp.get_active_element_css()
|
234
239
|
return js_utils.get_active_element_css(self.driver, *args, **kwargs)
|
235
240
|
|
236
241
|
def get_locale_code(self, *args, **kwargs):
|
242
|
+
if self.__is_cdp_swap_needed():
|
243
|
+
return self.driver.cdp.get_locale_code()
|
237
244
|
return js_utils.get_locale_code(self.driver, *args, **kwargs)
|
238
245
|
|
246
|
+
def get_screen_rect(self, *args, **kwargs):
|
247
|
+
if self.__is_cdp_swap_needed():
|
248
|
+
return self.driver.cdp.get_screen_rect()
|
249
|
+
return js_utils.get_screen_rect(self.driver, *args, **kwargs)
|
250
|
+
|
239
251
|
def get_origin(self, *args, **kwargs):
|
252
|
+
if self.__is_cdp_swap_needed():
|
253
|
+
return self.driver.cdp.get_origin()
|
240
254
|
return js_utils.get_origin(self.driver, *args, **kwargs)
|
241
255
|
|
242
256
|
def get_user_agent(self, *args, **kwargs):
|
257
|
+
if self.__is_cdp_swap_needed():
|
258
|
+
return self.driver.cdp.get_user_agent()
|
243
259
|
return js_utils.get_user_agent(self.driver, *args, **kwargs)
|
244
260
|
|
261
|
+
def get_cookie_string(self, *args, **kwargs):
|
262
|
+
if self.__is_cdp_swap_needed():
|
263
|
+
return self.driver.cdp.get_cookie_string()
|
264
|
+
return js_utils.get_cookie_string(self.driver, *args, **kwargs)
|
265
|
+
|
245
266
|
def highlight(self, *args, **kwargs):
|
246
267
|
if self.__is_cdp_swap_needed():
|
247
268
|
selector = None
|
@@ -312,6 +333,16 @@ class DriverMethods():
|
|
312
333
|
iframe = self.locator(frame)
|
313
334
|
self.driver.switch_to.frame(iframe)
|
314
335
|
|
336
|
+
def reset_window_size(self):
|
337
|
+
if self.__is_cdp_swap_needed():
|
338
|
+
self.driver.cdp.reset_window_size()
|
339
|
+
return
|
340
|
+
x = settings.WINDOW_START_X
|
341
|
+
y = settings.WINDOW_START_Y
|
342
|
+
width = settings.CHROME_START_WIDTH
|
343
|
+
height = settings.CHROME_START_HEIGHT
|
344
|
+
self.driver.set_window_rect(x, y, width, height)
|
345
|
+
|
315
346
|
def set_wire_proxy(self, string):
|
316
347
|
"""Set a proxy server for selenium-wire mode ("--wire")
|
317
348
|
Examples: (ONLY avilable if using selenium-wire mode!)
|
@@ -3452,6 +3452,13 @@ class BaseCase(unittest.TestCase):
|
|
3452
3452
|
y = element_rect["y"] + (element_rect["height"] / 2.0) + 0.5
|
3453
3453
|
return (x, y)
|
3454
3454
|
|
3455
|
+
def get_screen_rect(self):
|
3456
|
+
self.__check_scope()
|
3457
|
+
if self.__is_cdp_swap_needed():
|
3458
|
+
return self.cdp.get_screen_rect()
|
3459
|
+
self._check_browser()
|
3460
|
+
return self.driver.get_screen_rect()
|
3461
|
+
|
3455
3462
|
def get_window_rect(self):
|
3456
3463
|
self.__check_scope()
|
3457
3464
|
if self.__is_cdp_swap_needed():
|
@@ -3475,6 +3482,9 @@ class BaseCase(unittest.TestCase):
|
|
3475
3482
|
|
3476
3483
|
def set_window_rect(self, x, y, width, height):
|
3477
3484
|
self.__check_scope()
|
3485
|
+
if self.__is_cdp_swap_needed():
|
3486
|
+
self.cdp.set_window_rect(x, y, width, height)
|
3487
|
+
return
|
3478
3488
|
self._check_browser()
|
3479
3489
|
self.driver.set_window_rect(x, y, width, height)
|
3480
3490
|
self.__demo_mode_pause_if_active(tiny=True)
|
@@ -3493,10 +3503,35 @@ class BaseCase(unittest.TestCase):
|
|
3493
3503
|
|
3494
3504
|
def maximize_window(self):
|
3495
3505
|
self.__check_scope()
|
3506
|
+
if self.__is_cdp_swap_needed():
|
3507
|
+
self.cdp.maximize()
|
3508
|
+
return
|
3496
3509
|
self._check_browser()
|
3497
3510
|
self.driver.maximize_window()
|
3498
3511
|
self.__demo_mode_pause_if_active(tiny=True)
|
3499
3512
|
|
3513
|
+
def minimize_window(self):
|
3514
|
+
self.__check_scope()
|
3515
|
+
if self.__is_cdp_swap_needed():
|
3516
|
+
self.cdp.minimize()
|
3517
|
+
return
|
3518
|
+
self._check_browser()
|
3519
|
+
self.driver.minimize_window()
|
3520
|
+
self.__demo_mode_pause_if_active(tiny=True)
|
3521
|
+
|
3522
|
+
def reset_window_size(self):
|
3523
|
+
self.__check_scope()
|
3524
|
+
if self.__is_cdp_swap_needed():
|
3525
|
+
self.cdp.reset_window_size()
|
3526
|
+
return
|
3527
|
+
self._check_browser()
|
3528
|
+
x = settings.WINDOW_START_X
|
3529
|
+
y = settings.WINDOW_START_Y
|
3530
|
+
width = settings.CHROME_START_WIDTH
|
3531
|
+
height = settings.CHROME_START_HEIGHT
|
3532
|
+
self.set_window_rect(x, y, width, height)
|
3533
|
+
self.__demo_mode_pause_if_active(tiny=True)
|
3534
|
+
|
3500
3535
|
def switch_to_frame(self, frame="iframe", timeout=None):
|
3501
3536
|
"""Wait for an iframe to appear, and switch to it. This should be
|
3502
3537
|
usable as a drop-in replacement for driver.switch_to.frame().
|
@@ -1188,6 +1188,10 @@ def get_locale_code(driver):
|
|
1188
1188
|
return driver.execute_script(script)
|
1189
1189
|
|
1190
1190
|
|
1191
|
+
def get_screen_rect(driver):
|
1192
|
+
return driver.execute_script("return window.screen;")
|
1193
|
+
|
1194
|
+
|
1191
1195
|
def get_origin(driver):
|
1192
1196
|
return driver.execute_script("return window.location.origin;")
|
1193
1197
|
|
@@ -1196,6 +1200,10 @@ def get_user_agent(driver):
|
|
1196
1200
|
return driver.execute_script("return navigator.userAgent;")
|
1197
1201
|
|
1198
1202
|
|
1203
|
+
def get_cookie_string(driver):
|
1204
|
+
return driver.execute_script("return document.cookie;")
|
1205
|
+
|
1206
|
+
|
1199
1207
|
def get_scroll_distance_to_element(driver, element):
|
1200
1208
|
try:
|
1201
1209
|
scroll_position = driver.execute_script("return window.scrollY;")
|
@@ -275,12 +275,15 @@ def SB(
|
|
275
275
|
collect_only = ("--co" in sys_argv or "--collect-only" in sys_argv)
|
276
276
|
all_scripts = (hasattr(sb_config, "all_scripts") and sb_config.all_scripts)
|
277
277
|
do_log_folder_setup = False # The first "test=True" run does it
|
278
|
+
inner_test = False
|
278
279
|
if (
|
279
280
|
(hasattr(sb_config, "is_behave") and sb_config.is_behave)
|
280
281
|
or (hasattr(sb_config, "is_pytest") and sb_config.is_pytest)
|
281
282
|
or (hasattr(sb_config, "is_nosetest") and sb_config.is_nosetest)
|
282
283
|
):
|
283
284
|
existing_runner = True
|
285
|
+
if test:
|
286
|
+
inner_test = True
|
284
287
|
test = False # Already using a test runner. Skip extra test steps.
|
285
288
|
elif test is None and "--test" in sys_argv:
|
286
289
|
test = True
|
@@ -1222,7 +1225,10 @@ def SB(
|
|
1222
1225
|
sb._has_failure = True
|
1223
1226
|
exception = e
|
1224
1227
|
test_passed = False
|
1225
|
-
if not test_name:
|
1228
|
+
if (test or inner_test) and not test_name:
|
1229
|
+
print(e)
|
1230
|
+
return
|
1231
|
+
elif not test_name:
|
1226
1232
|
raise
|
1227
1233
|
else:
|
1228
1234
|
the_traceback = traceback.format_exc().strip()
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: seleniumbase
|
3
|
-
Version: 4.
|
3
|
+
Version: 4.33.0
|
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
|
@@ -61,10 +61,14 @@ Description-Content-Type: text/markdown
|
|
61
61
|
License-File: LICENSE
|
62
62
|
Requires-Dist: pip>=24.3.1
|
63
63
|
Requires-Dist: packaging>=24.2
|
64
|
-
Requires-Dist:
|
64
|
+
Requires-Dist: setuptools~=70.2; python_version < "3.10"
|
65
|
+
Requires-Dist: setuptools>=75.6.0; python_version >= "3.10"
|
66
|
+
Requires-Dist: wheel>=0.45.1
|
65
67
|
Requires-Dist: attrs>=24.2.0
|
66
68
|
Requires-Dist: certifi>=2024.8.30
|
67
69
|
Requires-Dist: exceptiongroup>=1.2.2
|
70
|
+
Requires-Dist: websockets~=13.1; python_version < "3.9"
|
71
|
+
Requires-Dist: websockets>=14.1; python_version >= "3.9"
|
68
72
|
Requires-Dist: filelock>=3.16.1
|
69
73
|
Requires-Dist: fasteners>=0.19
|
70
74
|
Requires-Dist: mycdp>=1.1.0
|
@@ -78,11 +82,14 @@ Requires-Dist: parse-type>=0.6.4
|
|
78
82
|
Requires-Dist: colorama>=0.4.6
|
79
83
|
Requires-Dist: pyyaml>=6.0.2
|
80
84
|
Requires-Dist: pygments>=2.18.0
|
85
|
+
Requires-Dist: pyreadline3>=3.5.3; platform_system == "Windows"
|
81
86
|
Requires-Dist: tabcompleter>=1.4.0
|
82
87
|
Requires-Dist: pdbp>=1.6.1
|
83
88
|
Requires-Dist: idna==3.10
|
84
89
|
Requires-Dist: chardet==5.2.0
|
85
90
|
Requires-Dist: charset-normalizer==3.4.0
|
91
|
+
Requires-Dist: urllib3<2,>=1.26.20; python_version < "3.10"
|
92
|
+
Requires-Dist: urllib3<2.3.0,>=1.26.20; python_version >= "3.10"
|
86
93
|
Requires-Dist: requests==2.32.3
|
87
94
|
Requires-Dist: sniffio==1.3.1
|
88
95
|
Requires-Dist: h11==0.14.0
|
@@ -91,7 +98,7 @@ Requires-Dist: trio==0.27.0
|
|
91
98
|
Requires-Dist: trio-websocket==0.11.1
|
92
99
|
Requires-Dist: wsproto==1.2.0
|
93
100
|
Requires-Dist: websocket-client==1.8.0
|
94
|
-
Requires-Dist: selenium==4.
|
101
|
+
Requires-Dist: selenium==4.27.1
|
95
102
|
Requires-Dist: cssselect==1.2.0
|
96
103
|
Requires-Dist: sortedcontainers==2.4.0
|
97
104
|
Requires-Dist: execnet==2.1.1
|
@@ -102,40 +109,34 @@ Requires-Dist: pytest==8.3.3
|
|
102
109
|
Requires-Dist: pytest-html==2.0.1
|
103
110
|
Requires-Dist: pytest-metadata==3.1.1
|
104
111
|
Requires-Dist: pytest-ordering==0.6
|
105
|
-
Requires-Dist: pytest-rerunfailures==14.0
|
112
|
+
Requires-Dist: pytest-rerunfailures==14.0; python_version < "3.9"
|
113
|
+
Requires-Dist: pytest-rerunfailures==15.0; python_version >= "3.9"
|
106
114
|
Requires-Dist: pytest-xdist==3.6.1
|
107
115
|
Requires-Dist: parameterized==0.9.0
|
108
116
|
Requires-Dist: behave==1.2.6
|
109
117
|
Requires-Dist: soupsieve==2.6
|
110
118
|
Requires-Dist: beautifulsoup4==4.12.3
|
111
119
|
Requires-Dist: pyotp==2.9.0
|
120
|
+
Requires-Dist: python-xlib==0.33; platform_system == "Linux"
|
112
121
|
Requires-Dist: markdown-it-py==3.0.0
|
113
122
|
Requires-Dist: mdurl==0.1.2
|
114
123
|
Requires-Dist: rich==13.9.4
|
115
|
-
Requires-Dist: python-xlib==0.33; platform_system == "Linux"
|
116
|
-
Requires-Dist: pyreadline3>=3.5.3; platform_system == "Windows"
|
117
|
-
Requires-Dist: setuptools~=70.2; python_version < "3.10"
|
118
|
-
Requires-Dist: urllib3<2,>=1.26.20; python_version < "3.10"
|
119
|
-
Requires-Dist: websockets~=13.1; python_version < "3.9"
|
120
|
-
Requires-Dist: setuptools>=75.5.0; python_version >= "3.10"
|
121
|
-
Requires-Dist: urllib3<2.3.0,>=1.26.20; python_version >= "3.10"
|
122
|
-
Requires-Dist: websockets>=14.1; python_version >= "3.9"
|
123
124
|
Provides-Extra: allure
|
124
125
|
Requires-Dist: allure-pytest>=2.13.5; extra == "allure"
|
125
126
|
Requires-Dist: allure-python-commons>=2.13.5; extra == "allure"
|
126
127
|
Requires-Dist: allure-behave>=2.13.5; extra == "allure"
|
127
128
|
Provides-Extra: coverage
|
128
129
|
Requires-Dist: coverage>=7.6.1; python_version < "3.9" and extra == "coverage"
|
130
|
+
Requires-Dist: coverage>=7.6.8; python_version >= "3.9" and extra == "coverage"
|
129
131
|
Requires-Dist: pytest-cov>=5.0.0; python_version < "3.9" and extra == "coverage"
|
130
|
-
Requires-Dist: coverage>=7.6.7; python_version >= "3.9" and extra == "coverage"
|
131
132
|
Requires-Dist: pytest-cov>=6.0.0; python_version >= "3.9" and extra == "coverage"
|
132
133
|
Provides-Extra: flake8
|
133
|
-
Requires-Dist: mccabe==0.7.0; extra == "flake8"
|
134
134
|
Requires-Dist: flake8==5.0.4; python_version < "3.9" and extra == "flake8"
|
135
|
-
Requires-Dist: pyflakes==2.5.0; python_version < "3.9" and extra == "flake8"
|
136
|
-
Requires-Dist: pycodestyle==2.9.1; python_version < "3.9" and extra == "flake8"
|
137
135
|
Requires-Dist: flake8==7.1.1; python_version >= "3.9" and extra == "flake8"
|
136
|
+
Requires-Dist: mccabe==0.7.0; extra == "flake8"
|
137
|
+
Requires-Dist: pyflakes==2.5.0; python_version < "3.9" and extra == "flake8"
|
138
138
|
Requires-Dist: pyflakes==3.2.0; python_version >= "3.9" and extra == "flake8"
|
139
|
+
Requires-Dist: pycodestyle==2.9.1; python_version < "3.9" and extra == "flake8"
|
139
140
|
Requires-Dist: pycodestyle==2.12.1; python_version >= "3.9" and extra == "flake8"
|
140
141
|
Provides-Extra: ipdb
|
141
142
|
Requires-Dist: ipdb==0.13.13; extra == "ipdb"
|
@@ -144,10 +145,10 @@ Provides-Extra: mss
|
|
144
145
|
Requires-Dist: mss==9.0.2; extra == "mss"
|
145
146
|
Provides-Extra: pdfminer
|
146
147
|
Requires-Dist: pdfminer.six==20240706; extra == "pdfminer"
|
147
|
-
Requires-Dist: cffi==1.17.1; extra == "pdfminer"
|
148
|
-
Requires-Dist: pycparser==2.22; extra == "pdfminer"
|
149
148
|
Requires-Dist: cryptography==39.0.2; python_version < "3.9" and extra == "pdfminer"
|
150
149
|
Requires-Dist: cryptography==43.0.3; python_version >= "3.9" and extra == "pdfminer"
|
150
|
+
Requires-Dist: cffi==1.17.1; extra == "pdfminer"
|
151
|
+
Requires-Dist: pycparser==2.22; extra == "pdfminer"
|
151
152
|
Provides-Extra: pillow
|
152
153
|
Requires-Dist: Pillow>=10.4.0; python_version < "3.9" and extra == "pillow"
|
153
154
|
Requires-Dist: Pillow>=11.0.0; python_version >= "3.9" and extra == "pillow"
|
@@ -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=OtJh8nGKL4xtZpw8KPqmn7Q6R-86t4cWUDyVF5MbMTo,2398
|
5
5
|
seleniumbase/__main__.py,sha256=dn1p6dgCchmcH1zzTzzQvFwwdQQqnTGH6ULV9m4hv24,654
|
6
|
-
seleniumbase/__version__.py,sha256=
|
6
|
+
seleniumbase/__version__.py,sha256=QWcZHZxKcoTjnqMUASmFQCA91tzSUF4vP43yJf9hNSk,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=-hza7Nx2U41mSObYiPMi48v3JlPh3sJO3yzP0kqZ1Gk,59174
|
@@ -36,7 +36,7 @@ seleniumbase/console_scripts/sb_print.py,sha256=tNy-bMDgwHJO3bZxMpmo9weSE8uhbH0C
|
|
36
36
|
seleniumbase/console_scripts/sb_recorder.py,sha256=fnHb5-kh11Hit-E9Ha-e4QXzqLcZvtij6mb5qNd4B1Q,11032
|
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=
|
39
|
+
seleniumbase/core/browser_launcher.py,sha256=GT7S15R_nxJJUesB693ST2F0kUMNn4FXrwiNBoXAKpE,220293
|
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
|
@@ -50,8 +50,8 @@ seleniumbase/core/proxy_helper.py,sha256=cXhu8ErK9Vjdm82RMaQj7hEq_yUWizSp6LyiD50
|
|
50
50
|
seleniumbase/core/recorder_helper.py,sha256=fNGjbapXmEsht54x1o6Igk198QdnPxDDnjUOzQxNhNQ,25055
|
51
51
|
seleniumbase/core/report_helper.py,sha256=AIl6Qava2yW1uSzbLpJBlPlYDz0KE-rVhogh8hsGWBo,12201
|
52
52
|
seleniumbase/core/s3_manager.py,sha256=bkeI8I4y19ebWuQG1oEZV5qJbotC6eN8vin31OCNWJk,3521
|
53
|
-
seleniumbase/core/sb_cdp.py,sha256=
|
54
|
-
seleniumbase/core/sb_driver.py,sha256=
|
53
|
+
seleniumbase/core/sb_cdp.py,sha256=4H91tZw77A8capl7wsRjzkpD62H018AmzKSQpmxXp6k,66948
|
54
|
+
seleniumbase/core/sb_driver.py,sha256=NGa4adi8OAi2WFtFkEguXg3JCd1p-JuZweIpGNifEfU,13488
|
55
55
|
seleniumbase/core/session_helper.py,sha256=s9zD3PVZEWVzG2h81cCUskbNWLfdjC_LwwQjKptHCak,558
|
56
56
|
seleniumbase/core/settings_parser.py,sha256=KokVXpCiGZhJ-D4Bo-hizPz5r-iefzWoiTANu9zNaq4,7504
|
57
57
|
seleniumbase/core/style_sheet.py,sha256=tPpJ1xl6Kuw425Z-3Y0OgVRLGXk_ciBDREZjXk_NuPE,11395
|
@@ -65,11 +65,11 @@ seleniumbase/extensions/disable_csp.zip,sha256=YMifIIgEBiLrEFrS1sfW4Exh4br1V4oK1
|
|
65
65
|
seleniumbase/extensions/recorder.zip,sha256=OOyzF-Ize2cSRu1CqhzSAq5vusI9hqLLd2OIApUHesI,11918
|
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=
|
68
|
+
seleniumbase/fixtures/base_case.py,sha256=_A6LC26exhIz_4o3XXCmn36JeVmC3gJLKSJQeUXLFRg,716755
|
69
69
|
seleniumbase/fixtures/constants.py,sha256=e1LppavlrAcI4XBJMq7u5j8SffaQ7SPQps1y0YvZYfY,13649
|
70
70
|
seleniumbase/fixtures/css_to_xpath.py,sha256=9ouDB1xl4MJ2os6JOgTIAyHKOQfuxtxvXC3O5hSnEKA,1954
|
71
71
|
seleniumbase/fixtures/errors.py,sha256=KyxuEVx_e3MPhVrJfNIa_3ltMpbCFxfy_jxK8RFNTns,555
|
72
|
-
seleniumbase/fixtures/js_utils.py,sha256=
|
72
|
+
seleniumbase/fixtures/js_utils.py,sha256=uHJ7RdOzvSkhG81nnO_m9qFRVmfCUsYbkH463q_w8Bo,51121
|
73
73
|
seleniumbase/fixtures/page_actions.py,sha256=dbp63c-7asYZyd8aOu57Y3dxQQozp_VJsP5h74s1kBA,66552
|
74
74
|
seleniumbase/fixtures/page_utils.py,sha256=5m7iXpikLs80TJoRO6_gEfXE1AKeQgcH1aFbR8o1C9A,12034
|
75
75
|
seleniumbase/fixtures/shared_utils.py,sha256=WbPb15IvIWzRtMInKG8DUzJ26UZU-PixdOwTCjXQirU,7545
|
@@ -90,7 +90,7 @@ seleniumbase/plugins/driver_manager.py,sha256=s20s0pJYaNrG0WNwyIC04oUMRVFjtm6V_n
|
|
90
90
|
seleniumbase/plugins/page_source.py,sha256=loTnXxOj4kxEukuTZEiGyvKBhY3KDVDMnNlHHheTBDE,1889
|
91
91
|
seleniumbase/plugins/pytest_plugin.py,sha256=Up96HY6q3hcPo4LQoEcKqt1hm2OmY5GZz_nMXTqDSXQ,97185
|
92
92
|
seleniumbase/plugins/s3_logging_plugin.py,sha256=WDfertQgGOW_SRJpFMaekYD6vBVW9VO62POtXXy2HCM,2319
|
93
|
-
seleniumbase/plugins/sb_manager.py,sha256=
|
93
|
+
seleniumbase/plugins/sb_manager.py,sha256=qCf6RAkAfziLTGgiJvB3V416RxWoTbRLm9wc-KsB8g8,54419
|
94
94
|
seleniumbase/plugins/screen_shots.py,sha256=1hrXw-hzuZ1BR6Yh7AyWX2ABnvnP73-RCbwdz958gj4,1127
|
95
95
|
seleniumbase/plugins/selenium_plugin.py,sha256=GhGW2ATy2kM7UH7NrZ2je402nN2LMlVHpM-yxlU3I9E,59069
|
96
96
|
seleniumbase/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -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.
|
139
|
-
seleniumbase-4.
|
140
|
-
seleniumbase-4.
|
141
|
-
seleniumbase-4.
|
142
|
-
seleniumbase-4.
|
143
|
-
seleniumbase-4.
|
138
|
+
seleniumbase-4.33.0.dist-info/LICENSE,sha256=odSYtWibXBnQ1gBg6CnDZ82n8kLF_if5-2nbqnEyD8k,1085
|
139
|
+
seleniumbase-4.33.0.dist-info/METADATA,sha256=vubW0bw2Oh3djh-PyVRyNtMR0qOqUWSzYo05-T_IE5w,86554
|
140
|
+
seleniumbase-4.33.0.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
141
|
+
seleniumbase-4.33.0.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
|
142
|
+
seleniumbase-4.33.0.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
|
143
|
+
seleniumbase-4.33.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|