seleniumbase 4.39.3__py3-none-any.whl → 4.39.5__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 +6 -0
- seleniumbase/core/sb_cdp.py +36 -12
- seleniumbase/fixtures/base_case.py +7 -1
- seleniumbase/undetected/cdp_driver/browser.py +43 -7
- {seleniumbase-4.39.3.dist-info → seleniumbase-4.39.5.dist-info}/METADATA +6 -5
- {seleniumbase-4.39.3.dist-info → seleniumbase-4.39.5.dist-info}/RECORD +11 -11
- {seleniumbase-4.39.3.dist-info → seleniumbase-4.39.5.dist-info}/WHEEL +0 -0
- {seleniumbase-4.39.3.dist-info → seleniumbase-4.39.5.dist-info}/entry_points.txt +0 -0
- {seleniumbase-4.39.3.dist-info → seleniumbase-4.39.5.dist-info}/licenses/LICENSE +0 -0
- {seleniumbase-4.39.3.dist-info → seleniumbase-4.39.5.dist-info}/top_level.txt +0 -0
seleniumbase/__version__.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
# seleniumbase package
|
2
|
-
__version__ = "4.39.
|
2
|
+
__version__ = "4.39.5"
|
@@ -532,6 +532,7 @@ def uc_open_with_reconnect(driver, url, reconnect_time=None):
|
|
532
532
|
|
533
533
|
|
534
534
|
def uc_open_with_cdp_mode(driver, url=None, **kwargs):
|
535
|
+
"""Activate CDP Mode with the URL and kwargs."""
|
535
536
|
import asyncio
|
536
537
|
from seleniumbase.undetected.cdp_driver import cdp_util
|
537
538
|
|
@@ -679,6 +680,9 @@ def uc_open_with_cdp_mode(driver, url=None, **kwargs):
|
|
679
680
|
cdp.go_forward = CDPM.go_forward
|
680
681
|
cdp.get_navigation_history = CDPM.get_navigation_history
|
681
682
|
cdp.tile_windows = CDPM.tile_windows
|
683
|
+
cdp.grant_permissions = CDPM.grant_permissions
|
684
|
+
cdp.grant_all_permissions = CDPM.grant_all_permissions
|
685
|
+
cdp.reset_permissions = CDPM.reset_permissions
|
682
686
|
cdp.get_all_cookies = CDPM.get_all_cookies
|
683
687
|
cdp.set_all_cookies = CDPM.set_all_cookies
|
684
688
|
cdp.save_cookies = CDPM.save_cookies
|
@@ -2144,6 +2148,7 @@ def _set_chrome_options(
|
|
2144
2148
|
prefs["download.prompt_for_download"] = False
|
2145
2149
|
prefs["download_bubble.partial_view_enabled"] = False
|
2146
2150
|
prefs["credentials_enable_service"] = False
|
2151
|
+
prefs["autofill.credit_card_enabled"] = False
|
2147
2152
|
prefs["local_discovery.notifications_enabled"] = False
|
2148
2153
|
prefs["safebrowsing.enabled"] = False # Prevent PW "data breach" pop-ups
|
2149
2154
|
prefs["safebrowsing.disable_download_protection"] = True
|
@@ -4002,6 +4007,7 @@ def get_local_driver(
|
|
4002
4007
|
"download.directory_upgrade": True,
|
4003
4008
|
"download.prompt_for_download": False,
|
4004
4009
|
"credentials_enable_service": False,
|
4010
|
+
"autofill.credit_card_enabled": False,
|
4005
4011
|
"local_discovery.notifications_enabled": False,
|
4006
4012
|
"safebrowsing.disable_download_protection": True,
|
4007
4013
|
"safebrowsing.enabled": False, # Prevent PW "data breach" pop-ups
|
seleniumbase/core/sb_cdp.py
CHANGED
@@ -645,6 +645,30 @@ class CDPMethods():
|
|
645
645
|
driver.tile_windows(windows, max_columns)
|
646
646
|
)
|
647
647
|
|
648
|
+
def grant_permissions(self, permissions, origin=None):
|
649
|
+
"""Grant specific permissions to the current window.
|
650
|
+
Applies to all origins if no origin is specified."""
|
651
|
+
driver = self.driver
|
652
|
+
if hasattr(driver, "cdp_base"):
|
653
|
+
driver = driver.cdp_base
|
654
|
+
return self.loop.run_until_complete(
|
655
|
+
driver.grant_permissions(permissions, origin)
|
656
|
+
)
|
657
|
+
|
658
|
+
def grant_all_permissions(self):
|
659
|
+
"""Grant all permissions to the current window for all origins."""
|
660
|
+
driver = self.driver
|
661
|
+
if hasattr(driver, "cdp_base"):
|
662
|
+
driver = driver.cdp_base
|
663
|
+
return self.loop.run_until_complete(driver.grant_all_permissions())
|
664
|
+
|
665
|
+
def reset_permissions(self):
|
666
|
+
"""Reset permissions for all origins on the current window."""
|
667
|
+
driver = self.driver
|
668
|
+
if hasattr(driver, "cdp_base"):
|
669
|
+
driver = driver.cdp_base
|
670
|
+
return self.loop.run_until_complete(driver.reset_permissions())
|
671
|
+
|
648
672
|
def get_all_cookies(self, *args, **kwargs):
|
649
673
|
driver = self.driver
|
650
674
|
if hasattr(driver, "cdp_base"):
|
@@ -681,9 +705,7 @@ class CDPMethods():
|
|
681
705
|
driver = self.driver
|
682
706
|
if hasattr(driver, "cdp_base"):
|
683
707
|
driver = driver.cdp_base
|
684
|
-
return self.loop.run_until_complete(
|
685
|
-
driver.cookies.clear()
|
686
|
-
)
|
708
|
+
return self.loop.run_until_complete(driver.cookies.clear())
|
687
709
|
|
688
710
|
def sleep(self, seconds):
|
689
711
|
time.sleep(seconds)
|
@@ -702,9 +724,7 @@ class CDPMethods():
|
|
702
724
|
|
703
725
|
js_code = active_css_js.get_active_element_css
|
704
726
|
js_code = js_code.replace("return getBestSelector", "getBestSelector")
|
705
|
-
return self.loop.run_until_complete(
|
706
|
-
self.page.evaluate(js_code)
|
707
|
-
)
|
727
|
+
return self.loop.run_until_complete(self.page.evaluate(js_code))
|
708
728
|
|
709
729
|
def click(self, selector, timeout=None):
|
710
730
|
if not timeout:
|
@@ -978,17 +998,13 @@ class CDPMethods():
|
|
978
998
|
"\n".join(exp_list[0:-1]) + "\n"
|
979
999
|
+ exp_list[-1].strip()[len("return "):]
|
980
1000
|
).strip()
|
981
|
-
return self.loop.run_until_complete(
|
982
|
-
self.page.evaluate(expression)
|
983
|
-
)
|
1001
|
+
return self.loop.run_until_complete(self.page.evaluate(expression))
|
984
1002
|
|
985
1003
|
def js_dumps(self, obj_name):
|
986
1004
|
"""Similar to evaluate(), but for dictionary results."""
|
987
1005
|
if obj_name.startswith("return "):
|
988
1006
|
obj_name = obj_name[len("return "):]
|
989
|
-
return self.loop.run_until_complete(
|
990
|
-
self.page.js_dumps(obj_name)
|
991
|
-
)
|
1007
|
+
return self.loop.run_until_complete(self.page.js_dumps(obj_name))
|
992
1008
|
|
993
1009
|
def maximize(self):
|
994
1010
|
if self.get_window()[1].window_state.value == "maximized":
|
@@ -1309,6 +1325,8 @@ class CDPMethods():
|
|
1309
1325
|
)
|
1310
1326
|
|
1311
1327
|
def get_element_attribute(self, selector, attribute):
|
1328
|
+
"""Find an element and return the value of an attribute.
|
1329
|
+
Raises an exception if there's no such element or attribute."""
|
1312
1330
|
attributes = self.get_element_attributes(selector)
|
1313
1331
|
with suppress(Exception):
|
1314
1332
|
return attributes[attribute]
|
@@ -1319,10 +1337,16 @@ class CDPMethods():
|
|
1319
1337
|
return value
|
1320
1338
|
|
1321
1339
|
def get_attribute(self, selector, attribute):
|
1340
|
+
"""Find an element and return the value of an attribute.
|
1341
|
+
If the element doesn't exist: Raises an exception.
|
1342
|
+
If the attribute doesn't exist: Returns None."""
|
1322
1343
|
return self.find_element(selector).get_attribute(attribute)
|
1323
1344
|
|
1324
1345
|
def get_element_html(self, selector):
|
1346
|
+
"""Find an element and return the outerHTML."""
|
1325
1347
|
selector = self.__convert_to_css_if_xpath(selector)
|
1348
|
+
self.find_element(selector)
|
1349
|
+
self.__add_light_pause()
|
1326
1350
|
return self.loop.run_until_complete(
|
1327
1351
|
self.page.evaluate(
|
1328
1352
|
"""document.querySelector('%s').outerHTML"""
|
@@ -1910,7 +1910,10 @@ class BaseCase(unittest.TestCase):
|
|
1910
1910
|
timeout = self.__get_new_timeout(timeout)
|
1911
1911
|
selector, by = self.__recalculate_selector(selector, by)
|
1912
1912
|
if self.__is_cdp_swap_needed():
|
1913
|
-
|
1913
|
+
if hard_fail:
|
1914
|
+
return self.cdp.get_element_attribute(selector, attribute)
|
1915
|
+
else:
|
1916
|
+
return self.cdp.get_attribute(selector, attribute)
|
1914
1917
|
self.wait_for_ready_state_complete()
|
1915
1918
|
time.sleep(0.01)
|
1916
1919
|
if self.__is_shadow_selector(selector):
|
@@ -4883,6 +4886,7 @@ class BaseCase(unittest.TestCase):
|
|
4883
4886
|
self.execute_script(script)
|
4884
4887
|
|
4885
4888
|
def activate_cdp_mode(self, url=None, **kwargs):
|
4889
|
+
"""Activate CDP Mode with the URL and kwargs."""
|
4886
4890
|
if hasattr(self.driver, "_is_using_uc") and self.driver._is_using_uc:
|
4887
4891
|
if self.__is_cdp_swap_needed():
|
4888
4892
|
return # CDP Mode is already active
|
@@ -4898,6 +4902,8 @@ class BaseCase(unittest.TestCase):
|
|
4898
4902
|
self.cdp = self.driver.cdp
|
4899
4903
|
|
4900
4904
|
def activate_recorder(self):
|
4905
|
+
"""Activate Recorder Mode on the current tab/window.
|
4906
|
+
For persistent Recorder Mode, use the extension instead."""
|
4901
4907
|
from seleniumbase.js_code.recorder_js import recorder_js
|
4902
4908
|
|
4903
4909
|
if not self.is_chromium():
|
@@ -16,7 +16,7 @@ import urllib.request
|
|
16
16
|
import warnings
|
17
17
|
from collections import defaultdict
|
18
18
|
from seleniumbase import config as sb_config
|
19
|
-
from typing import List, Set, Tuple, Union
|
19
|
+
from typing import List, Optional, Set, Tuple, Union
|
20
20
|
import mycdp as cdp
|
21
21
|
from . import cdp_util as util
|
22
22
|
from . import tab
|
@@ -504,10 +504,22 @@ class Browser:
|
|
504
504
|
# self.connection.handlers[cdp.inspector.Detached] = [self.stop]
|
505
505
|
# return self
|
506
506
|
|
507
|
+
async def grant_permissions(
|
508
|
+
self,
|
509
|
+
permissions: List[str] | str,
|
510
|
+
origin: Optional[str] = None,
|
511
|
+
):
|
512
|
+
"""Grant specific permissions to the current window.
|
513
|
+
Applies to all origins if no origin is specified."""
|
514
|
+
if isinstance(permissions, str):
|
515
|
+
permissions = [permissions]
|
516
|
+
await self.connection.send(
|
517
|
+
cdp.browser.grant_permissions(permissions, origin)
|
518
|
+
)
|
519
|
+
|
507
520
|
async def grant_all_permissions(self):
|
508
521
|
"""
|
509
522
|
Grant permissions for:
|
510
|
-
accessibilityEvents
|
511
523
|
audioCapture
|
512
524
|
backgroundSync
|
513
525
|
backgroundFetch
|
@@ -524,21 +536,45 @@ class Browser:
|
|
524
536
|
notifications
|
525
537
|
paymentHandler
|
526
538
|
periodicBackgroundSync
|
527
|
-
protectedMediaIdentifier
|
528
539
|
sensors
|
529
540
|
storageAccess
|
530
541
|
topLevelStorageAccess
|
531
542
|
videoCapture
|
532
|
-
videoCapturePanTiltZoom
|
533
543
|
wakeLockScreen
|
534
544
|
wakeLockSystem
|
535
545
|
windowManagement
|
536
546
|
"""
|
537
|
-
permissions =
|
538
|
-
|
539
|
-
|
547
|
+
permissions = [
|
548
|
+
"audioCapture",
|
549
|
+
"backgroundSync",
|
550
|
+
"backgroundFetch",
|
551
|
+
"clipboardReadWrite",
|
552
|
+
"clipboardSanitizedWrite",
|
553
|
+
"displayCapture",
|
554
|
+
"durableStorage",
|
555
|
+
"geolocation",
|
556
|
+
"idleDetection",
|
557
|
+
"localFonts",
|
558
|
+
"midi",
|
559
|
+
"midiSysex",
|
560
|
+
"nfc",
|
561
|
+
"notifications",
|
562
|
+
"paymentHandler",
|
563
|
+
"periodicBackgroundSync",
|
564
|
+
"sensors",
|
565
|
+
"storageAccess",
|
566
|
+
"topLevelStorageAccess",
|
567
|
+
"videoCapture",
|
568
|
+
"wakeLockScreen",
|
569
|
+
"wakeLockSystem",
|
570
|
+
"windowManagement",
|
571
|
+
]
|
540
572
|
await self.connection.send(cdp.browser.grant_permissions(permissions))
|
541
573
|
|
574
|
+
async def reset_permissions(self):
|
575
|
+
"""Reset permissions for all origins on the current window."""
|
576
|
+
await self.connection.send(cdp.browser.reset_permissions())
|
577
|
+
|
542
578
|
async def tile_windows(self, windows=None, max_columns: int = 0):
|
543
579
|
import math
|
544
580
|
try:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: seleniumbase
|
3
|
-
Version: 4.39.
|
3
|
+
Version: 4.39.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
|
@@ -40,6 +40,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
40
40
|
Classifier: Programming Language :: Python :: 3.11
|
41
41
|
Classifier: Programming Language :: Python :: 3.12
|
42
42
|
Classifier: Programming Language :: Python :: 3.13
|
43
|
+
Classifier: Programming Language :: Python :: 3.14
|
43
44
|
Classifier: Topic :: Internet
|
44
45
|
Classifier: Topic :: Internet :: WWW/HTTP :: Browsers
|
45
46
|
Classifier: Topic :: Scientific/Engineering
|
@@ -66,7 +67,7 @@ Requires-Dist: setuptools~=70.2; python_version < "3.10"
|
|
66
67
|
Requires-Dist: setuptools>=80.9.0; python_version >= "3.10"
|
67
68
|
Requires-Dist: wheel>=0.45.1
|
68
69
|
Requires-Dist: attrs>=25.3.0
|
69
|
-
Requires-Dist: certifi>=2025.
|
70
|
+
Requires-Dist: certifi>=2025.6.15
|
70
71
|
Requires-Dist: exceptiongroup>=1.3.0
|
71
72
|
Requires-Dist: websockets~=13.1; python_version < "3.9"
|
72
73
|
Requires-Dist: websockets>=15.0.1; python_version >= "3.9"
|
@@ -139,9 +140,9 @@ Requires-Dist: allure-python-commons>=2.13.5; extra == "allure"
|
|
139
140
|
Requires-Dist: allure-behave>=2.13.5; extra == "allure"
|
140
141
|
Provides-Extra: coverage
|
141
142
|
Requires-Dist: coverage>=7.6.1; python_version < "3.9" and extra == "coverage"
|
142
|
-
Requires-Dist: coverage>=7.
|
143
|
+
Requires-Dist: coverage>=7.9.1; python_version >= "3.9" and extra == "coverage"
|
143
144
|
Requires-Dist: pytest-cov>=5.0.0; python_version < "3.9" and extra == "coverage"
|
144
|
-
Requires-Dist: pytest-cov>=6.
|
145
|
+
Requires-Dist: pytest-cov>=6.2.1; python_version >= "3.9" and extra == "coverage"
|
145
146
|
Provides-Extra: flake8
|
146
147
|
Requires-Dist: flake8==5.0.4; python_version < "3.9" and extra == "flake8"
|
147
148
|
Requires-Dist: flake8==7.2.0; python_version >= "3.9" and extra == "flake8"
|
@@ -160,7 +161,7 @@ Provides-Extra: pdfminer
|
|
160
161
|
Requires-Dist: pdfminer.six==20250324; python_version < "3.9" and extra == "pdfminer"
|
161
162
|
Requires-Dist: pdfminer.six==20250506; python_version >= "3.9" and extra == "pdfminer"
|
162
163
|
Requires-Dist: cryptography==39.0.2; python_version < "3.9" and extra == "pdfminer"
|
163
|
-
Requires-Dist: cryptography==45.0.
|
164
|
+
Requires-Dist: cryptography==45.0.4; python_version >= "3.9" and extra == "pdfminer"
|
164
165
|
Requires-Dist: cffi==1.17.1; extra == "pdfminer"
|
165
166
|
Requires-Dist: pycparser==2.22; extra == "pdfminer"
|
166
167
|
Provides-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=JFEY9P5QJqsa1M6ghzLMH2eIPQyh85iglCaQwg8Y8z4,2498
|
5
5
|
seleniumbase/__main__.py,sha256=dn1p6dgCchmcH1zzTzzQvFwwdQQqnTGH6ULV9m4hv24,654
|
6
|
-
seleniumbase/__version__.py,sha256=
|
6
|
+
seleniumbase/__version__.py,sha256=fE-VlrT_5wvHoF_FXLo8I-Zcpf9nims5W88jxxXXRfs,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=bbbfa8ID6nMnmrVJ7G-014uOj5PE4B8IROZB2WXSQ8I,59172
|
@@ -36,7 +36,7 @@ seleniumbase/console_scripts/sb_print.py,sha256=tNy-bMDgwHJO3bZxMpmo9weSE8uhbH0C
|
|
36
36
|
seleniumbase/console_scripts/sb_recorder.py,sha256=DH-n2fN7N9qyHMl7wjtn8MiliBgfw-1kwgmfg1GUuhk,10772
|
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=8BJ9DqkyNmJce_-6KwpsR-HHp8X8JJvXAZB4ik-5LL4,243210
|
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=pZ1NboNfziHU3vWZLOZLX-qkfM3oKSnpc3omQf9
|
|
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=z_4qx2jI_gtK5r3niGXgEOBpfMUicUCOciowai50MP4,3529
|
53
|
-
seleniumbase/core/sb_cdp.py,sha256=
|
53
|
+
seleniumbase/core/sb_cdp.py,sha256=plIklEXJWYPWKhZv1POozsVgsRMntGKMgpKFGCMeHNk,87786
|
54
54
|
seleniumbase/core/sb_driver.py,sha256=yUdS9_9OXTVaWzp1qY7msvnsvCK8X3FIcxMixb0BuBE,13827
|
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=5RvomXnm2PdivUVcxTV6jfvD8WhTEsQYH
|
|
65
65
|
seleniumbase/extensions/recorder.zip,sha256=JEE_FVEvlS63cFQbVLEroIyPSS91nWCDL0MhjVrmIpk,11813
|
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=zTz2eHinYkdXIyETYl0fna9X8MbIt4dkowA_Y-Z2HBI,727422
|
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
|
@@ -115,7 +115,7 @@ seleniumbase/undetected/reactor.py,sha256=NropaXcO54pzmDq6quR27qPJxab6636H7LRAaq
|
|
115
115
|
seleniumbase/undetected/webelement.py,sha256=OOpUYbEiOG52KsYYyuDW9tYLdA2SMnukvwQHUdPVn9E,1389
|
116
116
|
seleniumbase/undetected/cdp_driver/__init__.py,sha256=Ga9alwuaZZy4_XOShc0HjgFnNqpPdrcbjAicz5gE7a4,215
|
117
117
|
seleniumbase/undetected/cdp_driver/_contradict.py,sha256=lP4b0h5quAy573ETn_TBbYV889cL1AuPLVInpJ0ZkiU,3183
|
118
|
-
seleniumbase/undetected/cdp_driver/browser.py,sha256=
|
118
|
+
seleniumbase/undetected/cdp_driver/browser.py,sha256=LF0TukNNuPN1zh75oiPBHKU3uLc4BmVyyw0EFn7hnWg,35640
|
119
119
|
seleniumbase/undetected/cdp_driver/cdp_util.py,sha256=_DoF4EE1osbzSb3do-sIrMnL_Gse2S2vs3NUAuhGSAI,24819
|
120
120
|
seleniumbase/undetected/cdp_driver/config.py,sha256=4-nUkEf7JSuOdFMNd6XmJnFucZrA59-kH1FUMxDcgFU,12561
|
121
121
|
seleniumbase/undetected/cdp_driver/connection.py,sha256=WgZ4QamXSdTzP4Xfgkn8mxv-JFivMG6hqbyHy2_LQlg,25717
|
@@ -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.39.
|
139
|
-
seleniumbase-4.39.
|
140
|
-
seleniumbase-4.39.
|
141
|
-
seleniumbase-4.39.
|
142
|
-
seleniumbase-4.39.
|
143
|
-
seleniumbase-4.39.
|
138
|
+
seleniumbase-4.39.5.dist-info/licenses/LICENSE,sha256=BRblZsX7HyPUjQmYTiyWr_e9tzWvmR3R4SFclM2R3W0,1085
|
139
|
+
seleniumbase-4.39.5.dist-info/METADATA,sha256=fD9WjfRqszxn6h42HNEPsj4qzV9VlVfoB-yj3nmjHzU,87335
|
140
|
+
seleniumbase-4.39.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
141
|
+
seleniumbase-4.39.5.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
|
142
|
+
seleniumbase-4.39.5.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
|
143
|
+
seleniumbase-4.39.5.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|