seleniumbase 4.31.6a4__py3-none-any.whl → 4.32.0__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- seleniumbase/__version__.py +1 -1
- seleniumbase/common/decorators.py +8 -7
- seleniumbase/console_scripts/sb_install.py +4 -4
- seleniumbase/core/browser_launcher.py +252 -44
- seleniumbase/core/sb_cdp.py +898 -0
- seleniumbase/core/sb_driver.py +44 -0
- seleniumbase/fixtures/base_case.py +208 -6
- seleniumbase/fixtures/constants.py +1 -0
- seleniumbase/fixtures/js_utils.py +4 -0
- seleniumbase/fixtures/page_actions.py +106 -0
- seleniumbase/fixtures/shared_utils.py +26 -0
- seleniumbase/plugins/driver_manager.py +136 -47
- seleniumbase/plugins/sb_manager.py +40 -1
- seleniumbase/undetected/__init__.py +2 -0
- seleniumbase/undetected/patcher.py +5 -5
- {seleniumbase-4.31.6a4.dist-info → seleniumbase-4.32.0.dist-info}/METADATA +26 -20
- {seleniumbase-4.31.6a4.dist-info → seleniumbase-4.32.0.dist-info}/RECORD +21 -20
- {seleniumbase-4.31.6a4.dist-info → seleniumbase-4.32.0.dist-info}/WHEEL +1 -1
- {seleniumbase-4.31.6a4.dist-info → seleniumbase-4.32.0.dist-info}/LICENSE +0 -0
- {seleniumbase-4.31.6a4.dist-info → seleniumbase-4.32.0.dist-info}/entry_points.txt +0 -0
- {seleniumbase-4.31.6a4.dist-info → seleniumbase-4.32.0.dist-info}/top_level.txt +0 -0
@@ -124,10 +124,13 @@ def Driver(
|
|
124
124
|
d_width=None, # Set device width
|
125
125
|
d_height=None, # Set device height
|
126
126
|
d_p_r=None, # Set device pixel ratio
|
127
|
+
position=None, # Shortcut / Duplicate of "window_position".
|
128
|
+
size=None, # Shortcut / Duplicate of "window_size".
|
127
129
|
uc=None, # Shortcut / Duplicate of "undetectable".
|
128
130
|
undetected=None, # Shortcut / Duplicate of "undetectable".
|
129
131
|
uc_cdp=None, # Shortcut / Duplicate of "uc_cdp_events".
|
130
132
|
uc_sub=None, # Shortcut / Duplicate of "uc_subprocess".
|
133
|
+
locale=None, # Shortcut / Duplicate of "locale_code".
|
131
134
|
log_cdp=None, # Shortcut / Duplicate of "log_cdp_events".
|
132
135
|
ad_block=None, # Shortcut / Duplicate of "ad_block_on".
|
133
136
|
server=None, # Shortcut / Duplicate of "servername".
|
@@ -216,10 +219,13 @@ def Driver(
|
|
216
219
|
d_width (int): Set device width
|
217
220
|
d_height (int): Set device height
|
218
221
|
d_p_r (float): Set device pixel ratio
|
222
|
+
position (x,y): Shortcut / Duplicate of "window_position".
|
223
|
+
size (w,h): Shortcut / Duplicate of "window_size".
|
219
224
|
uc (bool): Shortcut / Duplicate of "undetectable".
|
220
225
|
undetected (bool): Shortcut / Duplicate of "undetectable".
|
221
226
|
uc_cdp (bool): Shortcut / Duplicate of "uc_cdp_events".
|
222
227
|
uc_sub (bool): Shortcut / Duplicate of "uc_subprocess".
|
228
|
+
locale (str): Shortcut / Duplicate of "locale_code".
|
223
229
|
log_cdp (bool): Shortcut / Duplicate of "log_cdp_events".
|
224
230
|
ad_block (bool): Shortcut / Duplicate of "ad_block_on".
|
225
231
|
server (str): Shortcut / Duplicate of "servername".
|
@@ -433,6 +439,8 @@ def Driver(
|
|
433
439
|
break
|
434
440
|
count += 1
|
435
441
|
disable_features = d_f
|
442
|
+
if window_position is None and position is not None:
|
443
|
+
window_position = position
|
436
444
|
w_p = window_position
|
437
445
|
if w_p is None and "--window-position" in arg_join:
|
438
446
|
count = 0
|
@@ -446,29 +454,31 @@ def Driver(
|
|
446
454
|
w_p = None
|
447
455
|
break
|
448
456
|
count += 1
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
457
|
+
window_position = w_p
|
458
|
+
if window_position:
|
459
|
+
if window_position.count(",") != 1:
|
460
|
+
message = (
|
461
|
+
'\n\n window_position expects an "x,y" string!'
|
462
|
+
'\n (Your input was: "%s")\n' % window_position
|
463
|
+
)
|
464
|
+
raise Exception(message)
|
465
|
+
window_position = window_position.replace(" ", "")
|
466
|
+
win_x = None
|
467
|
+
win_y = None
|
468
|
+
try:
|
469
|
+
win_x = int(window_position.split(",")[0])
|
470
|
+
win_y = int(window_position.split(",")[1])
|
471
|
+
except Exception:
|
472
|
+
message = (
|
473
|
+
'\n\n Expecting integer values for "x,y"!'
|
474
|
+
'\n (window_position input was: "%s")\n'
|
475
|
+
% window_position
|
476
|
+
)
|
477
|
+
raise Exception(message)
|
478
|
+
settings.WINDOW_START_X = win_x
|
479
|
+
settings.WINDOW_START_Y = win_y
|
480
|
+
if window_size is None and size is not None:
|
481
|
+
window_size = size
|
472
482
|
w_s = window_size
|
473
483
|
if w_s is None and "--window-size" in arg_join:
|
474
484
|
count = 0
|
@@ -482,30 +492,30 @@ def Driver(
|
|
482
492
|
w_s = None
|
483
493
|
break
|
484
494
|
count += 1
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
495
|
+
window_size = w_s
|
496
|
+
if window_size:
|
497
|
+
if window_size.count(",") != 1:
|
498
|
+
message = (
|
499
|
+
'\n\n window_size expects a "width,height" string!'
|
500
|
+
'\n (Your input was: "%s")\n' % window_size
|
501
|
+
)
|
502
|
+
raise Exception(message)
|
503
|
+
window_size = window_size.replace(" ", "")
|
504
|
+
width = None
|
505
|
+
height = None
|
506
|
+
try:
|
507
|
+
width = int(window_size.split(",")[0])
|
508
|
+
height = int(window_size.split(",")[1])
|
509
|
+
except Exception:
|
510
|
+
message = (
|
511
|
+
'\n\n Expecting integer values for "width,height"!'
|
512
|
+
'\n (window_size input was: "%s")\n' % window_size
|
513
|
+
)
|
514
|
+
raise Exception(message)
|
515
|
+
settings.CHROME_START_WIDTH = width
|
516
|
+
settings.CHROME_START_HEIGHT = height
|
517
|
+
settings.HEADLESS_START_WIDTH = width
|
518
|
+
settings.HEADLESS_START_HEIGHT = height
|
509
519
|
if agent is None and "--agent" in arg_join:
|
510
520
|
count = 0
|
511
521
|
for arg in sys_argv:
|
@@ -734,6 +744,8 @@ def Driver(
|
|
734
744
|
swiftshader = True
|
735
745
|
else:
|
736
746
|
swiftshader = False
|
747
|
+
if locale is not None and locale_code is None:
|
748
|
+
locale_code = locale
|
737
749
|
if ad_block is not None and ad_block_on is None:
|
738
750
|
ad_block_on = ad_block
|
739
751
|
if ad_block_on is None:
|
@@ -779,6 +791,83 @@ def Driver(
|
|
779
791
|
# Launch a web browser
|
780
792
|
from seleniumbase.core import browser_launcher
|
781
793
|
|
794
|
+
# Fix Chrome-130 issues by creating a user-data-dir in advance
|
795
|
+
if undetectable and not user_data_dir and browser == "chrome":
|
796
|
+
import tempfile
|
797
|
+
import time
|
798
|
+
user_data_dir = (
|
799
|
+
os.path.normpath(tempfile.mkdtemp())
|
800
|
+
)
|
801
|
+
try:
|
802
|
+
decoy_driver = browser_launcher.get_driver(
|
803
|
+
browser_name=browser_name,
|
804
|
+
headless=False,
|
805
|
+
locale_code=locale_code,
|
806
|
+
use_grid=use_grid,
|
807
|
+
protocol=protocol,
|
808
|
+
servername=servername,
|
809
|
+
port=port,
|
810
|
+
proxy_string=proxy_string,
|
811
|
+
proxy_bypass_list=proxy_bypass_list,
|
812
|
+
proxy_pac_url=proxy_pac_url,
|
813
|
+
multi_proxy=multi_proxy,
|
814
|
+
user_agent=user_agent,
|
815
|
+
cap_file=cap_file,
|
816
|
+
cap_string=cap_string,
|
817
|
+
recorder_ext=recorder_ext,
|
818
|
+
disable_cookies=disable_cookies,
|
819
|
+
disable_js=disable_js,
|
820
|
+
disable_csp=disable_csp,
|
821
|
+
enable_ws=enable_ws,
|
822
|
+
enable_sync=enable_sync,
|
823
|
+
use_auto_ext=use_auto_ext,
|
824
|
+
undetectable=undetectable,
|
825
|
+
uc_cdp_events=uc_cdp_events,
|
826
|
+
uc_subprocess=uc_subprocess,
|
827
|
+
log_cdp_events=log_cdp_events,
|
828
|
+
no_sandbox=no_sandbox,
|
829
|
+
disable_gpu=disable_gpu,
|
830
|
+
headless1=False,
|
831
|
+
headless2=True,
|
832
|
+
incognito=incognito,
|
833
|
+
guest_mode=guest_mode,
|
834
|
+
dark_mode=dark_mode,
|
835
|
+
devtools=devtools,
|
836
|
+
remote_debug=remote_debug,
|
837
|
+
enable_3d_apis=enable_3d_apis,
|
838
|
+
swiftshader=swiftshader,
|
839
|
+
ad_block_on=ad_block_on,
|
840
|
+
host_resolver_rules=host_resolver_rules,
|
841
|
+
block_images=block_images,
|
842
|
+
do_not_track=do_not_track,
|
843
|
+
chromium_arg=chromium_arg,
|
844
|
+
firefox_arg=firefox_arg,
|
845
|
+
firefox_pref=firefox_pref,
|
846
|
+
user_data_dir=user_data_dir,
|
847
|
+
extension_zip=extension_zip,
|
848
|
+
extension_dir=extension_dir,
|
849
|
+
disable_features=disable_features,
|
850
|
+
binary_location=binary_location,
|
851
|
+
driver_version=driver_version,
|
852
|
+
page_load_strategy=page_load_strategy,
|
853
|
+
use_wire=use_wire,
|
854
|
+
external_pdf=external_pdf,
|
855
|
+
test_id=test_id,
|
856
|
+
mobile_emulator=is_mobile,
|
857
|
+
device_width=d_width,
|
858
|
+
device_height=d_height,
|
859
|
+
device_pixel_ratio=d_p_r,
|
860
|
+
browser=browser_name,
|
861
|
+
)
|
862
|
+
time.sleep(0.555)
|
863
|
+
except Exception:
|
864
|
+
pass
|
865
|
+
finally:
|
866
|
+
try:
|
867
|
+
decoy_driver.quit()
|
868
|
+
except Exception:
|
869
|
+
pass
|
870
|
+
|
782
871
|
driver = browser_launcher.get_driver(
|
783
872
|
browser_name=browser_name,
|
784
873
|
headless=headless,
|
@@ -104,10 +104,13 @@ def SB(
|
|
104
104
|
disable_ws=None, # Reverse of "enable_ws". (None and False are different)
|
105
105
|
disable_beforeunload=None, # Disable the "beforeunload" event on Chromium.
|
106
106
|
settings_file=None, # A file for overriding default SeleniumBase settings.
|
107
|
+
position=None, # Shortcut / Duplicate of "window_position".
|
108
|
+
size=None, # Shortcut / Duplicate of "window_size".
|
107
109
|
uc=None, # Shortcut / Duplicate of "undetectable".
|
108
110
|
undetected=None, # Shortcut / Duplicate of "undetectable".
|
109
111
|
uc_cdp=None, # Shortcut / Duplicate of "uc_cdp_events".
|
110
112
|
uc_sub=None, # Shortcut / Duplicate of "uc_subprocess".
|
113
|
+
locale=None, # Shortcut / Duplicate of "locale_code".
|
111
114
|
log_cdp=None, # Shortcut / Duplicate of "log_cdp_events".
|
112
115
|
ad_block=None, # Shortcut / Duplicate of "ad_block_on".
|
113
116
|
server=None, # Shortcut / Duplicate of "servername".
|
@@ -224,10 +227,13 @@ def SB(
|
|
224
227
|
disable_ws (bool): Reverse of "enable_ws". (None and False are different)
|
225
228
|
disable_beforeunload (bool): Disable the "beforeunload" event on Chromium.
|
226
229
|
settings_file (str): A file for overriding default SeleniumBase settings.
|
230
|
+
position (x,y): Shortcut / Duplicate of "window_position".
|
231
|
+
size (w,h): Shortcut / Duplicate of "window_size".
|
227
232
|
uc (bool): Shortcut / Duplicate of "undetectable".
|
228
233
|
undetected (bool): Shortcut / Duplicate of "undetectable".
|
229
234
|
uc_cdp (bool): Shortcut / Duplicate of "uc_cdp_events".
|
230
235
|
uc_sub (bool): Shortcut / Duplicate of "uc_subprocess".
|
236
|
+
locale (str): Shortcut / Duplicate of "locale_code".
|
231
237
|
log_cdp (bool): Shortcut / Duplicate of "log_cdp_events".
|
232
238
|
ad_block (bool): Shortcut / Duplicate of "ad_block_on".
|
233
239
|
server (str): Shortcut / Duplicate of "servername".
|
@@ -497,8 +503,13 @@ def SB(
|
|
497
503
|
break
|
498
504
|
count += 1
|
499
505
|
disable_features = d_f
|
506
|
+
if window_position is None and position is not None:
|
507
|
+
window_position = position
|
500
508
|
w_p = window_position
|
501
|
-
if
|
509
|
+
if (
|
510
|
+
w_p is None
|
511
|
+
and ("--window-position" in arg_join or "--position" in arg_join)
|
512
|
+
):
|
502
513
|
count = 0
|
503
514
|
for arg in sys_argv:
|
504
515
|
if arg.startswith("--window-position="):
|
@@ -511,6 +522,8 @@ def SB(
|
|
511
522
|
break
|
512
523
|
count += 1
|
513
524
|
window_position = w_p
|
525
|
+
if window_size is None and size is not None:
|
526
|
+
window_size = size
|
514
527
|
w_s = window_size
|
515
528
|
if w_s is None and "--window-size" in arg_join:
|
516
529
|
count = 0
|
@@ -890,6 +903,8 @@ def SB(
|
|
890
903
|
swiftshader = True
|
891
904
|
else:
|
892
905
|
swiftshader = False
|
906
|
+
if locale is not None and locale_code is None:
|
907
|
+
locale_code = locale
|
893
908
|
if ad_block is not None and ad_block_on is None:
|
894
909
|
ad_block_on = ad_block
|
895
910
|
if ad_block_on is None:
|
@@ -1197,6 +1212,30 @@ def SB(
|
|
1197
1212
|
if not sb_config.multi_proxy:
|
1198
1213
|
proxy_helper.remove_proxy_zip_if_present()
|
1199
1214
|
start_time = time.time()
|
1215
|
+
saved_headless2 = headless2
|
1216
|
+
|
1217
|
+
# Fix Chrome-130 issues by creating a user-data-dir in advance
|
1218
|
+
if undetectable and not user_data_dir and browser == "chrome":
|
1219
|
+
import tempfile
|
1220
|
+
user_data_dir = (
|
1221
|
+
os.path.normpath(tempfile.mkdtemp())
|
1222
|
+
)
|
1223
|
+
sb.user_data_dir = user_data_dir
|
1224
|
+
sb_config.user_data_dir = user_data_dir
|
1225
|
+
try:
|
1226
|
+
decoy = sb
|
1227
|
+
decoy.headless2 = True
|
1228
|
+
decoy.setUp()
|
1229
|
+
decoy.sleep(0.555)
|
1230
|
+
except Exception:
|
1231
|
+
pass
|
1232
|
+
finally:
|
1233
|
+
try:
|
1234
|
+
decoy.tearDown()
|
1235
|
+
except Exception:
|
1236
|
+
pass
|
1237
|
+
sb.headless2 = saved_headless2
|
1238
|
+
|
1200
1239
|
sb.setUp()
|
1201
1240
|
test_passed = True # This can change later
|
1202
1241
|
teardown_exception = None
|
@@ -441,6 +441,7 @@ class Chrome(selenium.webdriver.chrome.webdriver.WebDriver):
|
|
441
441
|
if hasattr(self, "service"):
|
442
442
|
with suppress(Exception):
|
443
443
|
self.service.stop()
|
444
|
+
self._is_connected = False
|
444
445
|
time.sleep(0.012)
|
445
446
|
|
446
447
|
def connect(self):
|
@@ -452,6 +453,7 @@ class Chrome(selenium.webdriver.chrome.webdriver.WebDriver):
|
|
452
453
|
time.sleep(0.012)
|
453
454
|
with suppress(Exception):
|
454
455
|
self.start_session()
|
456
|
+
self._is_connected = True
|
455
457
|
time.sleep(0.012)
|
456
458
|
|
457
459
|
def start_session(self, capabilities=None):
|
@@ -165,9 +165,9 @@ class Patcher(object):
|
|
165
165
|
|
166
166
|
@staticmethod
|
167
167
|
def force_kill_instances(exe_name):
|
168
|
-
"""
|
169
|
-
:param:
|
170
|
-
:return: True on success else False
|
168
|
+
"""Terminate instances of UC.
|
169
|
+
:param: Executable name to kill. (Can be a path)
|
170
|
+
:return: True on success else False."""
|
171
171
|
exe_name = os.path.basename(exe_name)
|
172
172
|
if IS_POSIX:
|
173
173
|
r = os.system("kill -f -9 $(pidof %s)" % exe_name)
|
@@ -274,8 +274,8 @@ class Patcher(object):
|
|
274
274
|
|
275
275
|
def __del__(self):
|
276
276
|
if self._custom_exe_path:
|
277
|
-
#
|
278
|
-
#
|
277
|
+
# If the driver binary is specified by the user,
|
278
|
+
# then assume it is important enough to keep it.
|
279
279
|
return
|
280
280
|
else:
|
281
281
|
timeout = 3
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: seleniumbase
|
3
|
-
Version: 4.
|
3
|
+
Version: 4.32.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
|
@@ -59,14 +59,16 @@ Classifier: Topic :: Utilities
|
|
59
59
|
Requires-Python: >=3.8
|
60
60
|
Description-Content-Type: text/markdown
|
61
61
|
License-File: LICENSE
|
62
|
-
Requires-Dist: pip>=24.
|
62
|
+
Requires-Dist: pip>=24.2
|
63
63
|
Requires-Dist: packaging>=24.1
|
64
64
|
Requires-Dist: wheel>=0.44.0
|
65
65
|
Requires-Dist: attrs>=24.2.0
|
66
66
|
Requires-Dist: certifi>=2024.8.30
|
67
67
|
Requires-Dist: exceptiongroup>=1.2.2
|
68
|
+
Requires-Dist: websockets>=13.1
|
68
69
|
Requires-Dist: filelock>=3.16.1
|
69
70
|
Requires-Dist: fasteners>=0.19
|
71
|
+
Requires-Dist: mycdp>=1.0.1
|
70
72
|
Requires-Dist: pynose>=1.5.3
|
71
73
|
Requires-Dist: platformdirs>=4.3.6
|
72
74
|
Requires-Dist: typing-extensions>=4.12.2
|
@@ -81,12 +83,12 @@ Requires-Dist: tabcompleter>=1.3.3
|
|
81
83
|
Requires-Dist: pdbp>=1.5.4
|
82
84
|
Requires-Dist: idna==3.10
|
83
85
|
Requires-Dist: chardet==5.2.0
|
84
|
-
Requires-Dist: charset-normalizer==3.
|
85
|
-
Requires-Dist: requests==2.
|
86
|
+
Requires-Dist: charset-normalizer==3.4.0
|
87
|
+
Requires-Dist: requests==2.32.3
|
86
88
|
Requires-Dist: sniffio==1.3.1
|
87
89
|
Requires-Dist: h11==0.14.0
|
88
90
|
Requires-Dist: outcome==1.3.0.post0
|
89
|
-
Requires-Dist: trio==0.
|
91
|
+
Requires-Dist: trio==0.27.0
|
90
92
|
Requires-Dist: trio-websocket==0.11.1
|
91
93
|
Requires-Dist: wsproto==1.2.0
|
92
94
|
Requires-Dist: websocket-client==1.8.0
|
@@ -110,20 +112,21 @@ Requires-Dist: beautifulsoup4==4.12.3
|
|
110
112
|
Requires-Dist: pyotp==2.9.0
|
111
113
|
Requires-Dist: markdown-it-py==3.0.0
|
112
114
|
Requires-Dist: mdurl==0.1.2
|
113
|
-
Requires-Dist: rich==13.9.
|
115
|
+
Requires-Dist: rich==13.9.3
|
114
116
|
Requires-Dist: python-xlib==0.33; platform_system == "Linux"
|
115
117
|
Requires-Dist: pyreadline3>=3.5.3; platform_system == "Windows"
|
116
118
|
Requires-Dist: setuptools~=70.2; python_version < "3.10"
|
117
119
|
Requires-Dist: urllib3<2,>=1.26.20; python_version < "3.10"
|
118
|
-
Requires-Dist: setuptools>=
|
120
|
+
Requires-Dist: setuptools>=73.0.1; python_version >= "3.10"
|
119
121
|
Requires-Dist: urllib3<2.3.0,>=1.26.20; python_version >= "3.10"
|
120
122
|
Provides-Extra: allure
|
121
123
|
Requires-Dist: allure-pytest>=2.13.5; extra == "allure"
|
122
124
|
Requires-Dist: allure-python-commons>=2.13.5; extra == "allure"
|
123
125
|
Requires-Dist: allure-behave>=2.13.5; extra == "allure"
|
124
126
|
Provides-Extra: coverage
|
125
|
-
Requires-Dist: coverage>=7.6.1; extra == "coverage"
|
126
127
|
Requires-Dist: pytest-cov>=5.0.0; extra == "coverage"
|
128
|
+
Requires-Dist: coverage>=7.6.1; python_version < "3.9" and extra == "coverage"
|
129
|
+
Requires-Dist: coverage>=7.6.4; python_version >= "3.9" and extra == "coverage"
|
127
130
|
Provides-Extra: flake8
|
128
131
|
Requires-Dist: mccabe==0.7.0; extra == "flake8"
|
129
132
|
Requires-Dist: flake8==5.0.4; python_version < "3.9" and extra == "flake8"
|
@@ -135,14 +138,17 @@ Requires-Dist: pycodestyle==2.12.1; python_version >= "3.9" and extra == "flake8
|
|
135
138
|
Provides-Extra: ipdb
|
136
139
|
Requires-Dist: ipdb==0.13.13; extra == "ipdb"
|
137
140
|
Requires-Dist: ipython==7.34.0; extra == "ipdb"
|
141
|
+
Provides-Extra: mss
|
142
|
+
Requires-Dist: mss==9.0.2; extra == "mss"
|
138
143
|
Provides-Extra: pdfminer
|
139
144
|
Requires-Dist: pdfminer.six==20240706; extra == "pdfminer"
|
140
145
|
Requires-Dist: cffi==1.17.1; extra == "pdfminer"
|
141
146
|
Requires-Dist: pycparser==2.22; extra == "pdfminer"
|
142
147
|
Requires-Dist: cryptography==39.0.2; python_version < "3.9" and extra == "pdfminer"
|
143
|
-
Requires-Dist: cryptography==43.0.
|
148
|
+
Requires-Dist: cryptography==43.0.3; python_version >= "3.9" and extra == "pdfminer"
|
144
149
|
Provides-Extra: pillow
|
145
|
-
Requires-Dist: Pillow>=10.4.0; extra == "pillow"
|
150
|
+
Requires-Dist: Pillow>=10.4.0; python_version < "3.9" and extra == "pillow"
|
151
|
+
Requires-Dist: Pillow>=11.0.0; python_version >= "3.9" and extra == "pillow"
|
146
152
|
Provides-Extra: pip-system-certs
|
147
153
|
Requires-Dist: pip-system-certs==4.0; platform_system == "Windows" and extra == "pip-system-certs"
|
148
154
|
Provides-Extra: proxy
|
@@ -187,30 +193,30 @@ Requires-Dist: zstandard==0.23.0; extra == "selenium-wire"
|
|
187
193
|
<p align="center">
|
188
194
|
<a href="#python_installation">🚀 Start</a> |
|
189
195
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/features_list.md">🏰 Features</a> |
|
190
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/ReadMe.md">📚 Examples</a> |
|
191
196
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/customizing_test_runs.md">🎛️ Options</a> |
|
197
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/ReadMe.md">📚 Examples</a> |
|
192
198
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/console_scripts/ReadMe.md">🌠 Scripts</a> |
|
193
199
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/mobile_testing.md">📱 Mobile</a>
|
194
200
|
<br />
|
195
201
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/method_summary.md">📘 APIs</a> |
|
196
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/syntax_formats.md">
|
197
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/example_logs/ReadMe.md">📊 Dashboard</a> |
|
202
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/syntax_formats.md"> 🔠 Formats</a> |
|
198
203
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/recorder_mode.md">🔴 Recorder</a> |
|
204
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/example_logs/ReadMe.md">📊 Dashboard</a> |
|
199
205
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/locale_codes.md">🗾 Locales</a> |
|
200
|
-
<a href="https://
|
206
|
+
<a href="https://seleniumbase.io/devices/?url=seleniumbase.com">💻 Farm</a>
|
201
207
|
<br />
|
202
208
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/commander.md">🎖️ GUI</a> |
|
203
209
|
<a href="https://seleniumbase.io/demo_page">📰 TestPage</a> |
|
204
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/case_plans.md">🗂️ CasePlans</a> |
|
205
210
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/uc_mode.md">👤 UC Mode</a> |
|
206
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/
|
207
|
-
<a href="https://
|
211
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/ReadMe.md">🐙 CDP Mode</a> |
|
212
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/chart_maker/ReadMe.md">📶 Charts</a> |
|
213
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/utilities/selenium_grid/ReadMe.md">🌐 Grid</a>
|
208
214
|
<br />
|
209
215
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/how_it_works.md">👁️ How</a> |
|
210
216
|
<a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples/migration/raw_selenium">🚝 Migrate</a> |
|
211
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/
|
212
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/tree/master/
|
213
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/
|
217
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/case_plans.md">🗂️ CasePlans</a> |
|
218
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples/boilerplates">♻️ Template</a> |
|
219
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/master_qa/ReadMe.md">🧬 Hybrid</a> |
|
214
220
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/tour_examples/ReadMe.md">🚎 Tours</a>
|
215
221
|
<br />
|
216
222
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/integrations/github/workflows/ReadMe.md">🤖 CI/CD</a> |
|
@@ -3,13 +3,13 @@ sbase/__main__.py,sha256=G0bVB1-DM4PGwQ1KyOupaWCs4ePbChZNNWuX2htim5U,647
|
|
3
3
|
sbase/steps.py,sha256=bKT_u5bJkKzYWEuAXi9NVVRYYxQRCM1_YJUrNFFRVPY,42865
|
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=2MOWGUj31Rmy7cgI4NkXO-1JQ8tVPWJuE5Uaox9UzEU,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
|
10
10
|
seleniumbase/behave/steps.py,sha256=8-N-NB2tnDsxaP4LSg-uSBgbwZYMS6ZEL1oggO1PCoU,390
|
11
11
|
seleniumbase/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
12
|
-
seleniumbase/common/decorators.py,sha256=
|
12
|
+
seleniumbase/common/decorators.py,sha256=xDW2tlXKOV-3xN8h7hP6iRleenn17tAM1ToPZ-eGQ3Y,7653
|
13
13
|
seleniumbase/common/encryption.py,sha256=IfAuE0hdrd3y-_qAQUWdSOKRGQ4QN24uTOBiQ9Eeq2s,5593
|
14
14
|
seleniumbase/common/exceptions.py,sha256=SbdHOTbg7ycrioWleAVw9kG9vBtDfbYoj3e7ikkYYz0,3257
|
15
15
|
seleniumbase/common/obfuscate.py,sha256=VrwPbVigPH_Jk6ADCk5_miMoq1VK4M9SKnYScDkk-DQ,1204
|
@@ -25,7 +25,7 @@ seleniumbase/console_scripts/run.py,sha256=t_mpBUIJLBrUtzJ5RQL5y8UVCTm7DhNyS94rH
|
|
25
25
|
seleniumbase/console_scripts/sb_behave_gui.py,sha256=3Zl7_QQczvkkQW_UuaqYEUlEjiZ6AJzHR9GeNyVVXkc,15147
|
26
26
|
seleniumbase/console_scripts/sb_caseplans.py,sha256=qlmvjQ49bOBE1Q29fVmabimkVibCVr25GNtJhFPTMrc,18145
|
27
27
|
seleniumbase/console_scripts/sb_commander.py,sha256=yqoAK211OE6x5AWL2IAo8WojHtdkVj0AWqfoJ-ewmyo,13329
|
28
|
-
seleniumbase/console_scripts/sb_install.py,sha256=
|
28
|
+
seleniumbase/console_scripts/sb_install.py,sha256=y84Zk-rcp554kcF_g97Xwl0Rn38pyH9wO5OKHX879RI,45831
|
29
29
|
seleniumbase/console_scripts/sb_mkchart.py,sha256=ep9g-9CSIwaOJKVxhB3xjRQpfsuApyN8-Dr129cNXwQ,10941
|
30
30
|
seleniumbase/console_scripts/sb_mkdir.py,sha256=csqyWGEUdT2slLnQU3p9gnu5qE26TSVi_ZE3wttH_SQ,29778
|
31
31
|
seleniumbase/console_scripts/sb_mkfile.py,sha256=OWYd4yFccmjrd-gNn1t1una-HDRU2_N2-r4Tg3nHsj0,17744
|
@@ -36,7 +36,7 @@ seleniumbase/console_scripts/sb_print.py,sha256=tNy-bMDgwHJO3bZxMpmo9weSE8uhbH0C
|
|
36
36
|
seleniumbase/console_scripts/sb_recorder.py,sha256=1oAA4wFzVboNhIFDwJLD3jgy9RuoavywKQG7R67bNZE,10908
|
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=tP5p_EGqNcxa9icmEaGL90wkExhSBG5HffIrCmdEULM,214543
|
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,7 +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/
|
53
|
+
seleniumbase/core/sb_cdp.py,sha256=QUGB_2IHtH_AbTUVzV0JgdCJindP_ENya-ziZ6uB0Do,32684
|
54
|
+
seleniumbase/core/sb_driver.py,sha256=-k4vHwMnuiBIkdVInTtJA-IDLrgQfyMhNxSHMIsjepw,11623
|
54
55
|
seleniumbase/core/session_helper.py,sha256=s9zD3PVZEWVzG2h81cCUskbNWLfdjC_LwwQjKptHCak,558
|
55
56
|
seleniumbase/core/settings_parser.py,sha256=KokVXpCiGZhJ-D4Bo-hizPz5r-iefzWoiTANu9zNaq4,7504
|
56
57
|
seleniumbase/core/style_sheet.py,sha256=tPpJ1xl6Kuw425Z-3Y0OgVRLGXk_ciBDREZjXk_NuPE,11395
|
@@ -64,14 +65,14 @@ seleniumbase/extensions/disable_csp.zip,sha256=YMifIIgEBiLrEFrS1sfW4Exh4br1V4oK1
|
|
64
65
|
seleniumbase/extensions/recorder.zip,sha256=OOyzF-Ize2cSRu1CqhzSAq5vusI9hqLLd2OIApUHesI,11918
|
65
66
|
seleniumbase/extensions/sbase_ext.zip,sha256=3s1N8zrVaMz8RQEOIoBzC3KDjtmHwVZRvVsX25Odr_s,8175
|
66
67
|
seleniumbase/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
67
|
-
seleniumbase/fixtures/base_case.py,sha256=
|
68
|
-
seleniumbase/fixtures/constants.py,sha256=
|
68
|
+
seleniumbase/fixtures/base_case.py,sha256=99pypBh0cqUGjNpZuLoG4N6CsumJj1y_TElesv7Pb7Q,710297
|
69
|
+
seleniumbase/fixtures/constants.py,sha256=XYYMpB-ZDI756LvfhSK9RxdqQ_qO9fJVXgBqBYlQNkk,13609
|
69
70
|
seleniumbase/fixtures/css_to_xpath.py,sha256=9ouDB1xl4MJ2os6JOgTIAyHKOQfuxtxvXC3O5hSnEKA,1954
|
70
71
|
seleniumbase/fixtures/errors.py,sha256=KyxuEVx_e3MPhVrJfNIa_3ltMpbCFxfy_jxK8RFNTns,555
|
71
|
-
seleniumbase/fixtures/js_utils.py,sha256=
|
72
|
-
seleniumbase/fixtures/page_actions.py,sha256=
|
72
|
+
seleniumbase/fixtures/js_utils.py,sha256=5o4CTLcCyd717lJ_atOYcC6kPRiZFx-LJIlixRrP_cE,51061
|
73
|
+
seleniumbase/fixtures/page_actions.py,sha256=fOCb2NB2PpEaE8gpAVu-73VjwLzfwP1R9HsRkix_z6s,66634
|
73
74
|
seleniumbase/fixtures/page_utils.py,sha256=5m7iXpikLs80TJoRO6_gEfXE1AKeQgcH1aFbR8o1C9A,12034
|
74
|
-
seleniumbase/fixtures/shared_utils.py,sha256
|
75
|
+
seleniumbase/fixtures/shared_utils.py,sha256=-EgvsCjZlJtFj_Qdc6r1JfsWwZYfOdWhdVrYKnbjz4c,6625
|
75
76
|
seleniumbase/fixtures/unittest_helper.py,sha256=sfZ92rZeBAn_sF_yQ3I6_I7h3lyU5-cV_UMegBNoEm8,1294
|
76
77
|
seleniumbase/fixtures/words.py,sha256=FOA4mAYvl3EPVpBTvgvK6YwCL8BdlRCmed685kEe7Vg,7827
|
77
78
|
seleniumbase/fixtures/xpath_to_css.py,sha256=lML56k656fElXJ4NJF07r35FjctrbgQkXUotNk7A-as,8876
|
@@ -85,11 +86,11 @@ seleniumbase/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
|
|
85
86
|
seleniumbase/plugins/base_plugin.py,sha256=FemdftNhOaTfQIw5bWcJQPPPGQ3P0_sMEI_YYDuzZgU,14972
|
86
87
|
seleniumbase/plugins/basic_test_info.py,sha256=8ov6n417gPbqqvrlT4zrch7l2XcRt-GF2ny6rR9AMWk,2108
|
87
88
|
seleniumbase/plugins/db_reporting_plugin.py,sha256=En09qUCoojrk9-vbcnsoHdSELoGmag2GDIyu3jTiJas,7331
|
88
|
-
seleniumbase/plugins/driver_manager.py,sha256=
|
89
|
+
seleniumbase/plugins/driver_manager.py,sha256=8I2g4oxX63qQi9DQaek2RSrlcQbKcPu2wmTPeLTVk2Q,37521
|
89
90
|
seleniumbase/plugins/page_source.py,sha256=loTnXxOj4kxEukuTZEiGyvKBhY3KDVDMnNlHHheTBDE,1889
|
90
91
|
seleniumbase/plugins/pytest_plugin.py,sha256=Up96HY6q3hcPo4LQoEcKqt1hm2OmY5GZz_nMXTqDSXQ,97185
|
91
92
|
seleniumbase/plugins/s3_logging_plugin.py,sha256=WDfertQgGOW_SRJpFMaekYD6vBVW9VO62POtXXy2HCM,2319
|
92
|
-
seleniumbase/plugins/sb_manager.py,sha256=
|
93
|
+
seleniumbase/plugins/sb_manager.py,sha256=sqLsIqYjelQoYk2ziHcycuTmZq1dwiv8G4gLNEx_fIo,55031
|
93
94
|
seleniumbase/plugins/screen_shots.py,sha256=1hrXw-hzuZ1BR6Yh7AyWX2ABnvnP73-RCbwdz958gj4,1127
|
94
95
|
seleniumbase/plugins/selenium_plugin.py,sha256=GhGW2ATy2kM7UH7NrZ2je402nN2LMlVHpM-yxlU3I9E,59069
|
95
96
|
seleniumbase/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -105,11 +106,11 @@ seleniumbase/translate/portuguese.py,sha256=x3P4qxp56UiI41GoaL7JbUvFRYsgXU1EKjTg
|
|
105
106
|
seleniumbase/translate/russian.py,sha256=TyN9n0b4GRWDEYnHRGw1rfNAscdDmP3F3Y3aySM3C7s,27978
|
106
107
|
seleniumbase/translate/spanish.py,sha256=hh3xgW1Pq122SHYVvJAxFaXhFrjniOVncVbJbfWqOUM,25528
|
107
108
|
seleniumbase/translate/translator.py,sha256=wPhZH6e5NhmebYL1kP2eGxUcVy1gfTb6XCH8ATEPpxE,49238
|
108
|
-
seleniumbase/undetected/__init__.py,sha256=
|
109
|
+
seleniumbase/undetected/__init__.py,sha256=DM4qLtVTnWtyjQxzlHNQogrdFAQ0o6ezpc5cT8BrF5s,21971
|
109
110
|
seleniumbase/undetected/cdp.py,sha256=EralLQm8diG5i6EoHFXHIQEc7Uf7PWtzyPH_upS5RIs,4047
|
110
111
|
seleniumbase/undetected/dprocess.py,sha256=VLwyLWXSg-6GkeKpAQcTXLRmuBb0oEdku3_qgMifuwY,1705
|
111
112
|
seleniumbase/undetected/options.py,sha256=jc6Km-gZePOemnolD7UF7dDXpxmRtAE2XDraLUdaIFE,2968
|
112
|
-
seleniumbase/undetected/patcher.py,sha256=
|
113
|
+
seleniumbase/undetected/patcher.py,sha256=GqNqUwqDDFZg-Y3O6JOyFoOGhHN0r5PV46Mc9b9_BP0,10849
|
113
114
|
seleniumbase/undetected/reactor.py,sha256=UT1pEnGaTPZT7-0-xKROk9_eWDZueGzSUrCksc22nyA,2883
|
114
115
|
seleniumbase/undetected/webelement.py,sha256=_s6evgUkdWJpwOnzX4qR9i796PoVbz3txlzHlOBJ4BE,1370
|
115
116
|
seleniumbase/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -126,9 +127,9 @@ seleniumbase/utilities/selenium_grid/start-grid-hub.bat,sha256=Ftq-GrAKRYH2ssDPr
|
|
126
127
|
seleniumbase/utilities/selenium_grid/start-grid-hub.sh,sha256=KADv0RUHONLL2_I443QFK8PryBpDmKn5Gy0s4o0vDSM,106
|
127
128
|
seleniumbase/utilities/selenium_ide/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
128
129
|
seleniumbase/utilities/selenium_ide/convert_ide.py,sha256=pZFnqEJQEKZPyNFjkLD29s2HPQgCrWW9XJWpCPhWOoM,31691
|
129
|
-
seleniumbase-4.
|
130
|
-
seleniumbase-4.
|
131
|
-
seleniumbase-4.
|
132
|
-
seleniumbase-4.
|
133
|
-
seleniumbase-4.
|
134
|
-
seleniumbase-4.
|
130
|
+
seleniumbase-4.32.0.dist-info/LICENSE,sha256=odSYtWibXBnQ1gBg6CnDZ82n8kLF_if5-2nbqnEyD8k,1085
|
131
|
+
seleniumbase-4.32.0.dist-info/METADATA,sha256=80Uen7n631jzckzndYAbj1wGISIBEVa14J8XhzB1css,85653
|
132
|
+
seleniumbase-4.32.0.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
|
133
|
+
seleniumbase-4.32.0.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
|
134
|
+
seleniumbase-4.32.0.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
|
135
|
+
seleniumbase-4.32.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|