seleniumbase 4.35.2__py3-none-any.whl → 4.35.4__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 +10 -0
- seleniumbase/core/sb_cdp.py +57 -10
- seleniumbase/fixtures/base_case.py +7 -1
- seleniumbase/undetected/__init__.py +1 -0
- seleniumbase/undetected/cdp_driver/browser.py +5 -6
- seleniumbase/undetected/cdp_driver/connection.py +1 -1
- seleniumbase/undetected/cdp_driver/tab.py +1 -0
- {seleniumbase-4.35.2.dist-info → seleniumbase-4.35.4.dist-info}/METADATA +3 -3
- {seleniumbase-4.35.2.dist-info → seleniumbase-4.35.4.dist-info}/RECORD +14 -14
- {seleniumbase-4.35.2.dist-info → seleniumbase-4.35.4.dist-info}/LICENSE +0 -0
- {seleniumbase-4.35.2.dist-info → seleniumbase-4.35.4.dist-info}/WHEEL +0 -0
- {seleniumbase-4.35.2.dist-info → seleniumbase-4.35.4.dist-info}/entry_points.txt +0 -0
- {seleniumbase-4.35.2.dist-info → seleniumbase-4.35.4.dist-info}/top_level.txt +0 -0
seleniumbase/__version__.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
# seleniumbase package
|
2
|
-
__version__ = "4.35.
|
2
|
+
__version__ = "4.35.4"
|
@@ -682,6 +682,15 @@ def uc_open_with_cdp_mode(driver, url=None):
|
|
682
682
|
cdp.gui_hover_element = CDPM.gui_hover_element
|
683
683
|
cdp.gui_hover_and_click = CDPM.gui_hover_and_click
|
684
684
|
cdp.internalize_links = CDPM.internalize_links
|
685
|
+
cdp.open_new_window = CDPM.open_new_window
|
686
|
+
cdp.switch_to_window = CDPM.switch_to_window
|
687
|
+
cdp.switch_to_newest_window = CDPM.switch_to_newest_window
|
688
|
+
cdp.open_new_tab = CDPM.open_new_tab
|
689
|
+
cdp.switch_to_tab = CDPM.switch_to_tab
|
690
|
+
cdp.switch_to_newest_tab = CDPM.switch_to_newest_tab
|
691
|
+
cdp.close_active_tab = CDPM.close_active_tab
|
692
|
+
cdp.get_active_tab = CDPM.get_active_tab
|
693
|
+
cdp.get_tabs = CDPM.get_tabs
|
685
694
|
cdp.get_window = CDPM.get_window
|
686
695
|
cdp.get_element_attributes = CDPM.get_element_attributes
|
687
696
|
cdp.get_element_attribute = CDPM.get_element_attribute
|
@@ -2033,6 +2042,7 @@ def _set_chrome_options(
|
|
2033
2042
|
prefs["download.default_directory"] = downloads_path
|
2034
2043
|
prefs["download.directory_upgrade"] = True
|
2035
2044
|
prefs["download.prompt_for_download"] = False
|
2045
|
+
prefs["download_bubble.partial_view_enabled"] = False
|
2036
2046
|
prefs["credentials_enable_service"] = False
|
2037
2047
|
prefs["local_discovery.notifications_enabled"] = False
|
2038
2048
|
prefs["safebrowsing.enabled"] = False # Prevent PW "data breach" pop-ups
|
seleniumbase/core/sb_cdp.py
CHANGED
@@ -106,7 +106,7 @@ class CDPMethods():
|
|
106
106
|
driver = self.driver
|
107
107
|
if hasattr(driver, "cdp_base"):
|
108
108
|
driver = driver.cdp_base
|
109
|
-
self.
|
109
|
+
self.loop.run_until_complete(self.page.get(url))
|
110
110
|
url_protocol = url.split(":")[0]
|
111
111
|
safe_url = True
|
112
112
|
if url_protocol not in ["about", "data", "chrome"]:
|
@@ -1014,10 +1014,61 @@ class CDPMethods():
|
|
1014
1014
|
self.set_window_rect(x, y, width, height)
|
1015
1015
|
self.__add_light_pause()
|
1016
1016
|
|
1017
|
+
def open_new_window(self, url=None, switch_to=True):
|
1018
|
+
return self.open_new_tab(url=url, switch_to=switch_to)
|
1019
|
+
|
1020
|
+
def switch_to_window(self, window):
|
1021
|
+
self.switch_to_tab(window)
|
1022
|
+
|
1023
|
+
def switch_to_newest_window(self):
|
1024
|
+
self.switch_to_tab(-1)
|
1025
|
+
|
1026
|
+
def open_new_tab(self, url=None, switch_to=True):
|
1027
|
+
if not isinstance(url, str):
|
1028
|
+
url = "about:blank"
|
1029
|
+
self.loop.run_until_complete(self.page.get(url, new_tab=True))
|
1030
|
+
if switch_to:
|
1031
|
+
self.switch_to_newest_tab()
|
1032
|
+
|
1033
|
+
def switch_to_tab(self, tab):
|
1034
|
+
driver = self.driver
|
1035
|
+
if hasattr(driver, "cdp_base"):
|
1036
|
+
driver = driver.cdp_base
|
1037
|
+
if isinstance(tab, int):
|
1038
|
+
self.page = driver.tabs[tab]
|
1039
|
+
elif isinstance(tab, cdp_util.Tab):
|
1040
|
+
self.page = tab
|
1041
|
+
else:
|
1042
|
+
raise Exception("`tab` must be an int or a Tab type!")
|
1043
|
+
self.bring_active_window_to_front()
|
1044
|
+
|
1045
|
+
def switch_to_newest_tab(self):
|
1046
|
+
self.switch_to_tab(-1)
|
1047
|
+
|
1048
|
+
def close_active_tab(self):
|
1049
|
+
"""Close the active tab.
|
1050
|
+
The active tab is the one currenly controlled by CDP.
|
1051
|
+
The active tab MIGHT NOT be the currently visible tab!
|
1052
|
+
(If a page opens a new tab, the new tab WON'T be active)
|
1053
|
+
To switch the active tab, call: sb.switch_to_tab(tab)"""
|
1054
|
+
return self.loop.run_until_complete(self.page.close())
|
1055
|
+
|
1056
|
+
def get_active_tab(self):
|
1057
|
+
"""Return the active tab.
|
1058
|
+
The active tab is the one currenly controlled by CDP.
|
1059
|
+
The active tab MIGHT NOT be the currently visible tab!
|
1060
|
+
(If a page opens a new tab, the new tab WON'T be active)
|
1061
|
+
To switch the active tab, call: sb.switch_to_tab(tab)"""
|
1062
|
+
return self.page
|
1063
|
+
|
1064
|
+
def get_tabs(self):
|
1065
|
+
driver = self.driver
|
1066
|
+
if hasattr(driver, "cdp_base"):
|
1067
|
+
driver = driver.cdp_base
|
1068
|
+
return driver.tabs
|
1069
|
+
|
1017
1070
|
def get_window(self):
|
1018
|
-
return self.loop.run_until_complete(
|
1019
|
-
self.page.get_window()
|
1020
|
-
)
|
1071
|
+
return self.loop.run_until_complete(self.page.get_window())
|
1021
1072
|
|
1022
1073
|
def get_text(self, selector):
|
1023
1074
|
return self.find_element(selector).text_all
|
@@ -1211,14 +1262,10 @@ class CDPMethods():
|
|
1211
1262
|
return ((e_x + e_width / 2.0) + 0.5, (e_y + e_height / 2.0) + 0.5)
|
1212
1263
|
|
1213
1264
|
def get_document(self):
|
1214
|
-
return self.loop.run_until_complete(
|
1215
|
-
self.page.get_document()
|
1216
|
-
)
|
1265
|
+
return self.loop.run_until_complete(self.page.get_document())
|
1217
1266
|
|
1218
1267
|
def get_flattened_document(self):
|
1219
|
-
return self.loop.run_until_complete(
|
1220
|
-
self.page.get_flattened_document()
|
1221
|
-
)
|
1268
|
+
return self.loop.run_until_complete(self.page.get_flattened_document())
|
1222
1269
|
|
1223
1270
|
def get_element_attributes(self, selector):
|
1224
1271
|
selector = self.__convert_to_css_if_xpath(selector)
|
@@ -3896,6 +3896,9 @@ class BaseCase(unittest.TestCase):
|
|
3896
3896
|
|
3897
3897
|
def open_new_window(self, switch_to=True):
|
3898
3898
|
"""Opens a new browser tab/window and switches to it by default."""
|
3899
|
+
if self.__is_cdp_swap_needed():
|
3900
|
+
self.cdp.open_new_tab(switch_to=switch_to)
|
3901
|
+
return
|
3899
3902
|
self.wait_for_ready_state_complete()
|
3900
3903
|
if switch_to:
|
3901
3904
|
try:
|
@@ -3918,6 +3921,9 @@ class BaseCase(unittest.TestCase):
|
|
3918
3921
|
timeout = settings.SMALL_TIMEOUT
|
3919
3922
|
if self.timeout_multiplier and timeout == settings.SMALL_TIMEOUT:
|
3920
3923
|
timeout = self.__get_new_timeout(timeout)
|
3924
|
+
if self.__is_cdp_swap_needed() and not isinstance(window, str):
|
3925
|
+
self.cdp.switch_to_tab(window)
|
3926
|
+
return
|
3921
3927
|
page_actions.switch_to_window(self.driver, window, timeout)
|
3922
3928
|
|
3923
3929
|
def switch_to_default_window(self):
|
@@ -10336,7 +10342,7 @@ class BaseCase(unittest.TestCase):
|
|
10336
10342
|
timeout = self.__get_new_timeout(timeout)
|
10337
10343
|
selector, by = self.__recalculate_selector(selector, by)
|
10338
10344
|
if self.__is_cdp_swap_needed():
|
10339
|
-
return self.cdp.
|
10345
|
+
return self.cdp.wait_for_text_not_visible(
|
10340
10346
|
text, selector=selector, timeout=timeout
|
10341
10347
|
)
|
10342
10348
|
return page_actions.wait_for_text_not_visible(
|
@@ -660,7 +660,7 @@ class CookieJar:
|
|
660
660
|
break
|
661
661
|
else:
|
662
662
|
connection = self._browser.connection
|
663
|
-
cookies = await connection.send(cdp.
|
663
|
+
cookies = await connection.send(cdp.network.get_cookies())
|
664
664
|
if requests_cookie_format:
|
665
665
|
import requests.cookies
|
666
666
|
|
@@ -690,8 +690,7 @@ class CookieJar:
|
|
690
690
|
break
|
691
691
|
else:
|
692
692
|
connection = self._browser.connection
|
693
|
-
|
694
|
-
await connection.send(cdp.storage.set_cookies(cookies))
|
693
|
+
await connection.send(cdp.network.set_cookies(cookies))
|
695
694
|
|
696
695
|
async def save(self, file: PathLike = ".session.dat", pattern: str = ".*"):
|
697
696
|
"""
|
@@ -718,7 +717,7 @@ class CookieJar:
|
|
718
717
|
break
|
719
718
|
else:
|
720
719
|
connection = self._browser.connection
|
721
|
-
cookies = await connection.send(cdp.
|
720
|
+
cookies = await connection.send(cdp.network.get_cookies())
|
722
721
|
# if not connection:
|
723
722
|
# return
|
724
723
|
# if not connection.websocket:
|
@@ -776,7 +775,7 @@ class CookieJar:
|
|
776
775
|
cookie.value,
|
777
776
|
)
|
778
777
|
break
|
779
|
-
await connection.send(cdp.
|
778
|
+
await connection.send(cdp.network.set_cookies(included_cookies))
|
780
779
|
|
781
780
|
async def clear(self):
|
782
781
|
"""
|
@@ -791,7 +790,7 @@ class CookieJar:
|
|
791
790
|
break
|
792
791
|
else:
|
793
792
|
connection = self._browser.connection
|
794
|
-
cookies = await connection.send(cdp.
|
793
|
+
cookies = await connection.send(cdp.network.get_cookies())
|
795
794
|
if cookies:
|
796
795
|
await connection.send(cdp.storage.clear_cookies())
|
797
796
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: seleniumbase
|
3
|
-
Version: 4.35.
|
3
|
+
Version: 4.35.4
|
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
|
@@ -110,7 +110,7 @@ Requires-Dist: sortedcontainers==2.4.0
|
|
110
110
|
Requires-Dist: execnet==2.1.1
|
111
111
|
Requires-Dist: iniconfig==2.0.0
|
112
112
|
Requires-Dist: pluggy==1.5.0
|
113
|
-
Requires-Dist: pytest==8.3.
|
113
|
+
Requires-Dist: pytest==8.3.5
|
114
114
|
Requires-Dist: pytest-html==4.0.2
|
115
115
|
Requires-Dist: pytest-metadata==3.1.1
|
116
116
|
Requires-Dist: pytest-ordering==0.6
|
@@ -151,7 +151,7 @@ Requires-Dist: mss==9.0.2; extra == "mss"
|
|
151
151
|
Provides-Extra: pdfminer
|
152
152
|
Requires-Dist: pdfminer.six==20240706; extra == "pdfminer"
|
153
153
|
Requires-Dist: cryptography==39.0.2; python_version < "3.9" and extra == "pdfminer"
|
154
|
-
Requires-Dist: cryptography==44.0.
|
154
|
+
Requires-Dist: cryptography==44.0.2; python_version >= "3.9" and extra == "pdfminer"
|
155
155
|
Requires-Dist: cffi==1.17.1; extra == "pdfminer"
|
156
156
|
Requires-Dist: pycparser==2.22; extra == "pdfminer"
|
157
157
|
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=IksyggWqGI_zELnLnvW4IXN2rTpkeGXFJtRWudNaUNM,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
|
@@ -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=I3CdpcZGoyxe0QS6m2qt-vMgLejN66q6WRS3cPQCaV8,237064
|
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=4VkpMwavz0fx8wcOqJ_jyBT0HIXwcxmAcpd1gjJ
|
|
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=xKhJowUxlDK_2jjM5DGGj2UMa-cBU28xihrScgtz7ZE,83866
|
54
54
|
seleniumbase/core/sb_driver.py,sha256=yvTDRblBzG6bDX7XcLiAA6QcBelSJj_HHL_04lcfeeE,13760
|
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=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=YTaO_EDz3ACMFV7aK1EFtt2a5mHzvquu7BPwL_vGH3c,722601
|
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=6_pKZZQFqudtng4IleiwVXvLnUibFgFOrIISq2IGbc0,24377
|
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
|
@@ -115,12 +115,12 @@ 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=c-9EWqpD2ZtpDg8edMuw9hYa6GuyOP1qxorNjtsWe1U,30457
|
119
119
|
seleniumbase/undetected/cdp_driver/cdp_util.py,sha256=6-0-Dq_dFAOXQ5_a58i9y93zRqWUrjWoy6Pf_xBoveE,21648
|
120
120
|
seleniumbase/undetected/cdp_driver/config.py,sha256=t8KV1Vqa5SQRBq3-gjkHHmj9h85AplAM01asO3AWufs,12507
|
121
|
-
seleniumbase/undetected/cdp_driver/connection.py,sha256=
|
121
|
+
seleniumbase/undetected/cdp_driver/connection.py,sha256=_ounWzQ1m3_t-zJVgOAU2RINiKphfJkw2Qbu-zIoHC0,23359
|
122
122
|
seleniumbase/undetected/cdp_driver/element.py,sha256=FIC6v7OmumLCT-_vIc3H4oju_oBbaLpWJUJIKm2c_q4,40467
|
123
|
-
seleniumbase/undetected/cdp_driver/tab.py,sha256=
|
123
|
+
seleniumbase/undetected/cdp_driver/tab.py,sha256=4fRB9OtiMx23r79a2aJKlEhCkP3E_JVGD_7EvJ3srxo,50944
|
124
124
|
seleniumbase/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
125
125
|
seleniumbase/utilities/selenium_grid/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
126
126
|
seleniumbase/utilities/selenium_grid/download_selenium_server.py,sha256=ZdoInIbhtmdKCIPxxtJHhd2sqotqcNXWMYbwWrkh9O0,1727
|
@@ -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.35.
|
139
|
-
seleniumbase-4.35.
|
140
|
-
seleniumbase-4.35.
|
141
|
-
seleniumbase-4.35.
|
142
|
-
seleniumbase-4.35.
|
143
|
-
seleniumbase-4.35.
|
138
|
+
seleniumbase-4.35.4.dist-info/LICENSE,sha256=BRblZsX7HyPUjQmYTiyWr_e9tzWvmR3R4SFclM2R3W0,1085
|
139
|
+
seleniumbase-4.35.4.dist-info/METADATA,sha256=QHqs05gZ1ZPiyfYeZIOBgEEY1CdCmdnktBRVsdSPWl0,86525
|
140
|
+
seleniumbase-4.35.4.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
141
|
+
seleniumbase-4.35.4.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
|
142
|
+
seleniumbase-4.35.4.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
|
143
|
+
seleniumbase-4.35.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|