seleniumbase 4.34.3__py3-none-any.whl → 4.34.5__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/console_scripts/sb_install.py +9 -4
- seleniumbase/console_scripts/sb_mkdir.py +21 -0
- seleniumbase/core/browser_launcher.py +1 -0
- seleniumbase/core/sb_cdp.py +5 -0
- seleniumbase/fixtures/base_case.py +4 -0
- seleniumbase/undetected/__init__.py +16 -1
- {seleniumbase-4.34.3.dist-info → seleniumbase-4.34.5.dist-info}/METADATA +3 -3
- {seleniumbase-4.34.3.dist-info → seleniumbase-4.34.5.dist-info}/RECORD +13 -13
- {seleniumbase-4.34.3.dist-info → seleniumbase-4.34.5.dist-info}/LICENSE +0 -0
- {seleniumbase-4.34.3.dist-info → seleniumbase-4.34.5.dist-info}/WHEEL +0 -0
- {seleniumbase-4.34.3.dist-info → seleniumbase-4.34.5.dist-info}/entry_points.txt +0 -0
- {seleniumbase-4.34.3.dist-info → seleniumbase-4.34.5.dist-info}/top_level.txt +0 -0
seleniumbase/__version__.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
# seleniumbase package
|
2
|
-
__version__ = "4.34.
|
2
|
+
__version__ = "4.34.5"
|
@@ -39,6 +39,7 @@ import time
|
|
39
39
|
import tarfile
|
40
40
|
import urllib3
|
41
41
|
import zipfile
|
42
|
+
from contextlib import suppress
|
42
43
|
from seleniumbase.fixtures import constants
|
43
44
|
from seleniumbase.fixtures import shared_utils
|
44
45
|
from seleniumbase import config as sb_config
|
@@ -1200,7 +1201,7 @@ def main(override=None, intel_for_uc=None, force_uc=None):
|
|
1200
1201
|
driver_path = None
|
1201
1202
|
driver_file = None
|
1202
1203
|
base_path = os.sep.join(zip_file_path.split(os.sep)[:-1])
|
1203
|
-
folder_name = contents[0].split(
|
1204
|
+
folder_name = contents[0].split("/")[0]
|
1204
1205
|
folder_path = os.path.join(base_path, folder_name)
|
1205
1206
|
if IS_MAC or IS_LINUX:
|
1206
1207
|
if (
|
@@ -1221,12 +1222,14 @@ def main(override=None, intel_for_uc=None, force_uc=None):
|
|
1221
1222
|
zip_file_path,
|
1222
1223
|
"-DestinationPath",
|
1223
1224
|
downloads_folder,
|
1225
|
+
"-Force",
|
1224
1226
|
]
|
1225
1227
|
)
|
1226
1228
|
else:
|
1227
1229
|
zip_ref.extractall(downloads_folder)
|
1228
1230
|
zip_ref.close()
|
1229
|
-
|
1231
|
+
with suppress(Exception):
|
1232
|
+
os.remove(zip_file_path)
|
1230
1233
|
log_d("%sUnzip Complete!%s\n" % (c2, cr))
|
1231
1234
|
pr_base_path = c3 + base_path + cr
|
1232
1235
|
pr_sep = c3 + os.sep + cr
|
@@ -1240,7 +1243,7 @@ def main(override=None, intel_for_uc=None, force_uc=None):
|
|
1240
1243
|
driver_path = None
|
1241
1244
|
driver_file = None
|
1242
1245
|
base_path = os.sep.join(zip_file_path.split(os.sep)[:-1])
|
1243
|
-
folder_name = contents[0].split(
|
1246
|
+
folder_name = contents[0].split("/")[0]
|
1244
1247
|
folder_path = os.path.join(base_path, folder_name)
|
1245
1248
|
if IS_MAC or IS_LINUX:
|
1246
1249
|
if (
|
@@ -1261,12 +1264,14 @@ def main(override=None, intel_for_uc=None, force_uc=None):
|
|
1261
1264
|
zip_file_path,
|
1262
1265
|
"-DestinationPath",
|
1263
1266
|
downloads_folder,
|
1267
|
+
"-Force",
|
1264
1268
|
]
|
1265
1269
|
)
|
1266
1270
|
else:
|
1267
1271
|
zip_ref.extractall(downloads_folder)
|
1268
1272
|
zip_ref.close()
|
1269
|
-
|
1273
|
+
with suppress(Exception):
|
1274
|
+
os.remove(zip_file_path)
|
1270
1275
|
log_d("%sUnzip Complete!%s\n" % (c2, cr))
|
1271
1276
|
pr_base_path = c3 + base_path + cr
|
1272
1277
|
pr_sep = c3 + os.sep + cr
|
@@ -247,6 +247,27 @@ def main():
|
|
247
247
|
data.append("msedgedriver.exe")
|
248
248
|
data.append("operadriver.exe")
|
249
249
|
data.append("uc_driver.exe")
|
250
|
+
data.append("chrome-mac-arm64.zip")
|
251
|
+
data.append("chrome-mac-x64.zip")
|
252
|
+
data.append("chrome-linux64.zip")
|
253
|
+
data.append("chrome-win64.zip")
|
254
|
+
data.append("chrome-win32.zip")
|
255
|
+
data.append("chrome-mac-arm64")
|
256
|
+
data.append("chrome-mac-x64")
|
257
|
+
data.append("chrome-linux64")
|
258
|
+
data.append("chrome-win64")
|
259
|
+
data.append("chrome-win32")
|
260
|
+
data.append("chrome-headless-shell-mac-arm64.zip")
|
261
|
+
data.append("chrome-headless-shell-mac-x64.zip")
|
262
|
+
data.append("chrome-headless-shell-linux64.zip")
|
263
|
+
data.append("chrome-headless-shell-win64.zip")
|
264
|
+
data.append("chrome-headless-shell-win32.zip")
|
265
|
+
data.append("chrome-headless-shell-mac-arm64")
|
266
|
+
data.append("chrome-headless-shell-mac-x64")
|
267
|
+
data.append("chrome-headless-shell-linux64")
|
268
|
+
data.append("chrome-headless-shell-win64")
|
269
|
+
data.append("chrome-headless-shell-win32")
|
270
|
+
data.append("libc++.dylib")
|
250
271
|
data.append("logs")
|
251
272
|
data.append("latest_logs")
|
252
273
|
data.append("log_archives")
|
@@ -749,6 +749,7 @@ def uc_open_with_cdp_mode(driver, url=None):
|
|
749
749
|
core_items.browser = cdp.browser
|
750
750
|
core_items.tab = cdp.tab
|
751
751
|
core_items.util = cdp.util
|
752
|
+
cdp._swap_driver = CDPM._swap_driver
|
752
753
|
cdp.core = core_items
|
753
754
|
cdp.loop = cdp.get_event_loop()
|
754
755
|
driver.cdp = cdp
|
seleniumbase/core/sb_cdp.py
CHANGED
@@ -19,6 +19,11 @@ class CDPMethods():
|
|
19
19
|
self.page = page
|
20
20
|
self.driver = driver
|
21
21
|
|
22
|
+
def _swap_driver(self, driver):
|
23
|
+
self.driver = driver
|
24
|
+
self.page = driver.cdp.page
|
25
|
+
self.loop = driver.cdp.loop
|
26
|
+
|
22
27
|
def __slow_mode_pause_if_set(self):
|
23
28
|
if (
|
24
29
|
(hasattr(sb_config, "demo_mode") and sb_config.demo_mode)
|
@@ -4358,6 +4358,8 @@ class BaseCase(unittest.TestCase):
|
|
4358
4358
|
self.driver = driver
|
4359
4359
|
if self.driver in self._drivers_browser_map:
|
4360
4360
|
self.browser = self._drivers_browser_map[self.driver]
|
4361
|
+
if self.__is_cdp_swap_needed():
|
4362
|
+
self.cdp._swap_driver(self.driver)
|
4361
4363
|
self.bring_active_window_to_front()
|
4362
4364
|
|
4363
4365
|
def switch_to_default_driver(self):
|
@@ -4366,6 +4368,8 @@ class BaseCase(unittest.TestCase):
|
|
4366
4368
|
self.driver = self._default_driver
|
4367
4369
|
if self.driver in self._drivers_browser_map:
|
4368
4370
|
self.browser = self._drivers_browser_map[self.driver]
|
4371
|
+
if self.__is_cdp_swap_needed():
|
4372
|
+
self.cdp._swap_driver(self.driver)
|
4369
4373
|
self.bring_active_window_to_front()
|
4370
4374
|
|
4371
4375
|
def save_screenshot(
|
@@ -25,6 +25,7 @@ __all__ = (
|
|
25
25
|
"CDP",
|
26
26
|
"find_chrome_executable",
|
27
27
|
)
|
28
|
+
IS_MAC = "darwin" in sys.platform
|
28
29
|
IS_POSIX = sys.platform.startswith(("darwin", "cygwin", "linux"))
|
29
30
|
logger = logging.getLogger("uc")
|
30
31
|
logger.setLevel(logging.getLogger().getEffectiveLevel())
|
@@ -311,7 +312,21 @@ class Chrome(selenium.webdriver.chrome.webdriver.WebDriver):
|
|
311
312
|
setattr(service_, "creationflags", creationflags)
|
312
313
|
if hasattr(service_, "creation_flags"):
|
313
314
|
setattr(service_, "creation_flags", creationflags)
|
314
|
-
|
315
|
+
try:
|
316
|
+
super().__init__(options=options, service=service_)
|
317
|
+
except OSError as e:
|
318
|
+
if IS_MAC and "Bad CPU type in executable" in str(e):
|
319
|
+
print(str(e))
|
320
|
+
message = (
|
321
|
+
"Missing a macOS dependency:\n"
|
322
|
+
"Your Mac needs Rosetta 2 to use UC Mode!\n"
|
323
|
+
'Run: "softwareupdate --install-rosetta"\n'
|
324
|
+
"Info: "
|
325
|
+
"https://apple.stackexchange.com/a/408379/607628"
|
326
|
+
)
|
327
|
+
raise Exception(message)
|
328
|
+
else:
|
329
|
+
raise
|
315
330
|
self.reactor = None
|
316
331
|
if enable_cdp_events:
|
317
332
|
if logging.getLogger().getEffectiveLevel() == logging.DEBUG:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: seleniumbase
|
3
|
-
Version: 4.34.
|
3
|
+
Version: 4.34.5
|
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,13 +59,13 @@ 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>=
|
62
|
+
Requires-Dist: pip>=25.0
|
63
63
|
Requires-Dist: packaging>=24.2
|
64
64
|
Requires-Dist: setuptools~=70.2; python_version < "3.10"
|
65
65
|
Requires-Dist: setuptools>=75.8.0; python_version >= "3.10"
|
66
66
|
Requires-Dist: wheel>=0.45.1
|
67
67
|
Requires-Dist: attrs>=25.1.0
|
68
|
-
Requires-Dist: certifi>=
|
68
|
+
Requires-Dist: certifi>=2025.1.31
|
69
69
|
Requires-Dist: exceptiongroup>=1.2.2
|
70
70
|
Requires-Dist: websockets~=13.1; python_version < "3.9"
|
71
71
|
Requires-Dist: websockets>=14.2; python_version >= "3.9"
|
@@ -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=GJLMqHoWsxCiRcclUXSg0XCnzzIpjkts1MI4IMq92v8,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=qQF85LoohJBfrPK5ZcPi50v-pWtOrC9qcN1B3Ki_3tY,59401
|
@@ -25,9 +25,9 @@ seleniumbase/console_scripts/run.py,sha256=6Q9kbpOY40kTczcQVrD-x6thb3QO9-2wfse7D
|
|
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=exQGKzqRAoGqRmQtDmlmoHnSG9eSy9eh8HVy-tXw6s4,13343
|
28
|
-
seleniumbase/console_scripts/sb_install.py,sha256=
|
28
|
+
seleniumbase/console_scripts/sb_install.py,sha256=RdByOmTQebibRFk5ym-FtFr0Gf91_ZfOsBB2MN5izUc,55524
|
29
29
|
seleniumbase/console_scripts/sb_mkchart.py,sha256=ep9g-9CSIwaOJKVxhB3xjRQpfsuApyN8-Dr129cNXwQ,10941
|
30
|
-
seleniumbase/console_scripts/sb_mkdir.py,sha256=
|
30
|
+
seleniumbase/console_scripts/sb_mkdir.py,sha256=TpXjsG-SZE496EFhbR1aJr5tcHRBo57QSmA9nfpxNXs,30713
|
31
31
|
seleniumbase/console_scripts/sb_mkfile.py,sha256=OWYd4yFccmjrd-gNn1t1una-HDRU2_N2-r4Tg3nHsj0,17744
|
32
32
|
seleniumbase/console_scripts/sb_mkpres.py,sha256=EWFRVacjYTX49y-fEiYTZacM9_01IxuuaO4nMjHrIGo,11015
|
33
33
|
seleniumbase/console_scripts/sb_mkrec.py,sha256=PrizjTmyrROYPO0yDm-zQS3QSfsZNeAmcJKKUvfgLhc,11966
|
@@ -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=0LbAceSruKdAhz1QFbrJl6NI4OoslqBdbtFYxemmkFY,233736
|
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,7 @@ seleniumbase/core/proxy_helper.py,sha256=kZnfkflB3XhuL2h-3inmx3UOLS8VAZ385BGCc4H
|
|
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=
|
53
|
+
seleniumbase/core/sb_cdp.py,sha256=fXq6gHebFPY1YO2sAQ9y4_F_Brv0yYbprmNlC9qil-U,76172
|
54
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=gqVohHVlE_5L5Cqe2L24uYrRzvoK-saX8E_Df7_-_3I,7609
|
@@ -65,7 +65,7 @@ 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=FujnBdiBgMSRdznydNCwD7-CYP3xL8FDit7w17WXmoE,720999
|
69
69
|
seleniumbase/fixtures/constants.py,sha256=WMrItuNyKq3XVJ64NluLIRc4gJCxDw8K8qXED0b9S2w,13752
|
70
70
|
seleniumbase/fixtures/css_to_xpath.py,sha256=9ouDB1xl4MJ2os6JOgTIAyHKOQfuxtxvXC3O5hSnEKA,1954
|
71
71
|
seleniumbase/fixtures/errors.py,sha256=KyxuEVx_e3MPhVrJfNIa_3ltMpbCFxfy_jxK8RFNTns,555
|
@@ -106,7 +106,7 @@ seleniumbase/translate/portuguese.py,sha256=x3P4qxp56UiI41GoaL7JbUvFRYsgXU1EKjTg
|
|
106
106
|
seleniumbase/translate/russian.py,sha256=TyN9n0b4GRWDEYnHRGw1rfNAscdDmP3F3Y3aySM3C7s,27978
|
107
107
|
seleniumbase/translate/spanish.py,sha256=hh3xgW1Pq122SHYVvJAxFaXhFrjniOVncVbJbfWqOUM,25528
|
108
108
|
seleniumbase/translate/translator.py,sha256=wPhZH6e5NhmebYL1kP2eGxUcVy1gfTb6XCH8ATEPpxE,49238
|
109
|
-
seleniumbase/undetected/__init__.py,sha256=
|
109
|
+
seleniumbase/undetected/__init__.py,sha256=BceRx0ZcKi9ghI3fRHZP3fRJC39uYUEgC7VGbAWsq6k,23652
|
110
110
|
seleniumbase/undetected/cdp.py,sha256=RLpwZnhUvmK9tgXcZIBBQedwk2q7Jj_EXZkmzI8WUqk,4023
|
111
111
|
seleniumbase/undetected/dprocess.py,sha256=83EV8ZHJWHG1TSUv9JNClBhdgiBXlkCc6mJ--HsoP3k,1681
|
112
112
|
seleniumbase/undetected/options.py,sha256=BoNuwhrG7oOvuLvTwkvsWCF36pMkS1tHCG-XpP4_EkI,3001
|
@@ -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.34.
|
139
|
-
seleniumbase-4.34.
|
140
|
-
seleniumbase-4.34.
|
141
|
-
seleniumbase-4.34.
|
142
|
-
seleniumbase-4.34.
|
143
|
-
seleniumbase-4.34.
|
138
|
+
seleniumbase-4.34.5.dist-info/LICENSE,sha256=BRblZsX7HyPUjQmYTiyWr_e9tzWvmR3R4SFclM2R3W0,1085
|
139
|
+
seleniumbase-4.34.5.dist-info/METADATA,sha256=N5mQYpVA0-Hvdo9C5hkEknEAATOR4WLMI31qXSeMJiA,86519
|
140
|
+
seleniumbase-4.34.5.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
141
|
+
seleniumbase-4.34.5.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
|
142
|
+
seleniumbase-4.34.5.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
|
143
|
+
seleniumbase-4.34.5.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|