seleniumbase 4.24.11__py3-none-any.whl → 4.25.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/config/proxy_list.py +3 -3
- seleniumbase/core/browser_launcher.py +33 -19
- seleniumbase/fixtures/base_case.py +1 -21
- seleniumbase/fixtures/constants.py +1 -1
- seleniumbase/fixtures/js_utils.py +39 -0
- seleniumbase/undetected/webelement.py +13 -3
- {seleniumbase-4.24.11.dist-info → seleniumbase-4.25.0.dist-info}/METADATA +13 -10
- {seleniumbase-4.24.11.dist-info → seleniumbase-4.25.0.dist-info}/RECORD +13 -13
- {seleniumbase-4.24.11.dist-info → seleniumbase-4.25.0.dist-info}/LICENSE +0 -0
- {seleniumbase-4.24.11.dist-info → seleniumbase-4.25.0.dist-info}/WHEEL +0 -0
- {seleniumbase-4.24.11.dist-info → seleniumbase-4.25.0.dist-info}/entry_points.txt +0 -0
- {seleniumbase-4.24.11.dist-info → seleniumbase-4.25.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.25.0"
|
@@ -23,9 +23,9 @@ you can try finding one from one of following sites:
|
|
23
23
|
"""
|
24
24
|
|
25
25
|
PROXY_LIST = {
|
26
|
-
"example1": "
|
27
|
-
"example2": "
|
28
|
-
"example3": "socks5://
|
26
|
+
"example1": "35.185.196.38:3128", # (Example) - set your own proxy here
|
27
|
+
"example2": "129.80.134.71:3128", # (Example)
|
28
|
+
"example3": "socks5://184.178.172.5:15303", # (Example)
|
29
29
|
"proxy1": None,
|
30
30
|
"proxy2": None,
|
31
31
|
"proxy3": None,
|
@@ -27,6 +27,7 @@ from seleniumbase.core import download_helper
|
|
27
27
|
from seleniumbase.core import proxy_helper
|
28
28
|
from seleniumbase.core import sb_driver
|
29
29
|
from seleniumbase.fixtures import constants
|
30
|
+
from seleniumbase.fixtures import js_utils
|
30
31
|
from seleniumbase.fixtures import shared_utils
|
31
32
|
|
32
33
|
urllib3.disable_warnings()
|
@@ -406,9 +407,9 @@ def uc_open(driver, url):
|
|
406
407
|
elif ":" not in url:
|
407
408
|
url = "https://" + url
|
408
409
|
if (url.startswith("http:") or url.startswith("https:")):
|
409
|
-
time.sleep(0.05)
|
410
410
|
with driver:
|
411
|
-
|
411
|
+
script = 'window.location.href = "%s";' % url
|
412
|
+
js_utils.call_me_later(driver, script, 33)
|
412
413
|
else:
|
413
414
|
driver.default_get(url) # The original one
|
414
415
|
return None
|
@@ -420,7 +421,6 @@ def uc_open_with_tab(driver, url):
|
|
420
421
|
elif ":" not in url:
|
421
422
|
url = "https://" + url
|
422
423
|
if (url.startswith("http:") or url.startswith("https:")):
|
423
|
-
time.sleep(0.05)
|
424
424
|
with driver:
|
425
425
|
driver.execute_script('window.open("%s","_blank");' % url)
|
426
426
|
driver.close()
|
@@ -439,7 +439,9 @@ def uc_open_with_reconnect(driver, url, reconnect_time=None):
|
|
439
439
|
elif ":" not in url:
|
440
440
|
url = "https://" + url
|
441
441
|
if (url.startswith("http:") or url.startswith("https:")):
|
442
|
-
|
442
|
+
script = 'window.open("%s","_blank");' % url
|
443
|
+
js_utils.call_me_later(driver, script, 3)
|
444
|
+
time.sleep(0.007)
|
443
445
|
driver.close()
|
444
446
|
driver.reconnect(reconnect_time)
|
445
447
|
driver.switch_to.window(driver.window_handles[-1])
|
@@ -463,11 +465,16 @@ def uc_click(
|
|
463
465
|
except Exception:
|
464
466
|
pass
|
465
467
|
element = driver.wait_for_selector(selector, by=by, timeout=timeout)
|
466
|
-
|
468
|
+
tag_name = element.tag_name
|
469
|
+
if not tag_name == "span": # Element must be "visible"
|
467
470
|
element = driver.wait_for_element(selector, by=by, timeout=timeout)
|
468
471
|
try:
|
469
472
|
element.uc_click(
|
470
|
-
driver,
|
473
|
+
driver,
|
474
|
+
selector,
|
475
|
+
by=by,
|
476
|
+
reconnect_time=reconnect_time,
|
477
|
+
tag_name=tag_name,
|
471
478
|
)
|
472
479
|
except ElementClickInterceptedException:
|
473
480
|
time.sleep(0.16)
|
@@ -812,11 +819,12 @@ def _set_chrome_options(
|
|
812
819
|
chrome_options = webdriver.edge.options.Options()
|
813
820
|
prefs = {}
|
814
821
|
prefs["download.default_directory"] = downloads_path
|
815
|
-
prefs["local_discovery.notifications_enabled"] = False
|
816
|
-
prefs["credentials_enable_service"] = False
|
817
|
-
prefs["download.prompt_for_download"] = False
|
818
822
|
prefs["download.directory_upgrade"] = True
|
823
|
+
prefs["download.prompt_for_download"] = False
|
824
|
+
prefs["credentials_enable_service"] = False
|
825
|
+
prefs["local_discovery.notifications_enabled"] = False
|
819
826
|
prefs["safebrowsing.enabled"] = False
|
827
|
+
prefs["safebrowsing.disable_download_protection"] = True
|
820
828
|
prefs["omnibox-max-zero-suggest-matches"] = 0
|
821
829
|
prefs["omnibox-use-existing-autocomplete-client"] = 0
|
822
830
|
prefs["omnibox-trending-zero-prefix-suggestions-on-ntp"] = 0
|
@@ -827,9 +835,8 @@ def _set_chrome_options(
|
|
827
835
|
prefs["omnibox-zero-suggest-prefetching-on-srp"] = 0
|
828
836
|
prefs["omnibox-zero-suggest-prefetching-on-web"] = 0
|
829
837
|
prefs["omnibox-zero-suggest-in-memory-caching"] = 0
|
830
|
-
prefs["default_content_setting_values.notifications"] = 0
|
831
838
|
prefs["content_settings.exceptions.automatic_downloads.*.setting"] = 1
|
832
|
-
prefs["
|
839
|
+
prefs["default_content_setting_values.notifications"] = 0
|
833
840
|
prefs["default_content_settings.popups"] = 0
|
834
841
|
prefs["managed_default_content_settings.popups"] = 0
|
835
842
|
prefs["profile.password_manager_enabled"] = False
|
@@ -1142,6 +1149,7 @@ def _set_chrome_options(
|
|
1142
1149
|
included_disabled_features.append("PrivacySandboxSettings4")
|
1143
1150
|
included_disabled_features.append("DownloadBubble")
|
1144
1151
|
included_disabled_features.append("DownloadBubbleV2")
|
1152
|
+
included_disabled_features.append("InsecureDownloadWarnings")
|
1145
1153
|
for item in extra_disabled_features:
|
1146
1154
|
if item not in included_disabled_features:
|
1147
1155
|
included_disabled_features.append(item)
|
@@ -1153,6 +1161,7 @@ def _set_chrome_options(
|
|
1153
1161
|
included_disabled_features.append("OptimizationTargetPrediction")
|
1154
1162
|
included_disabled_features.append("DownloadBubble")
|
1155
1163
|
included_disabled_features.append("DownloadBubbleV2")
|
1164
|
+
included_disabled_features.append("InsecureDownloadWarnings")
|
1156
1165
|
for item in extra_disabled_features:
|
1157
1166
|
if item not in included_disabled_features:
|
1158
1167
|
included_disabled_features.append(item)
|
@@ -2367,10 +2376,11 @@ def get_local_driver(
|
|
2367
2376
|
elif browser_name == constants.Browser.EDGE:
|
2368
2377
|
prefs = {
|
2369
2378
|
"download.default_directory": downloads_path,
|
2370
|
-
"local_discovery.notifications_enabled": False,
|
2371
|
-
"credentials_enable_service": False,
|
2372
|
-
"download.prompt_for_download": False,
|
2373
2379
|
"download.directory_upgrade": True,
|
2380
|
+
"download.prompt_for_download": False,
|
2381
|
+
"credentials_enable_service": False,
|
2382
|
+
"local_discovery.notifications_enabled": False,
|
2383
|
+
"safebrowsing.disable_download_protection": True,
|
2374
2384
|
"safebrowsing.enabled": False,
|
2375
2385
|
"omnibox-max-zero-suggest-matches": 0,
|
2376
2386
|
"omnibox-use-existing-autocomplete-client": 0,
|
@@ -2382,11 +2392,10 @@ def get_local_driver(
|
|
2382
2392
|
"omnibox-zero-suggest-prefetching-on-srp": 0,
|
2383
2393
|
"omnibox-zero-suggest-prefetching-on-web": 0,
|
2384
2394
|
"omnibox-zero-suggest-in-memory-caching": 0,
|
2385
|
-
"
|
2395
|
+
"content_settings.exceptions.automatic_downloads.*.setting": 1,
|
2386
2396
|
"default_content_setting_values.notifications": 0,
|
2387
2397
|
"default_content_settings.popups": 0,
|
2388
2398
|
"managed_default_content_settings.popups": 0,
|
2389
|
-
"content_settings.exceptions.automatic_downloads.*.setting": 1,
|
2390
2399
|
"profile.password_manager_enabled": False,
|
2391
2400
|
"profile.default_content_setting_values.notifications": 2,
|
2392
2401
|
"profile.default_content_settings.popups": 0,
|
@@ -2772,6 +2781,7 @@ def get_local_driver(
|
|
2772
2781
|
included_disabled_features.append("Translate")
|
2773
2782
|
included_disabled_features.append("OptimizationTargetPrediction")
|
2774
2783
|
included_disabled_features.append("PrivacySandboxSettings4")
|
2784
|
+
included_disabled_features.append("InsecureDownloadWarnings")
|
2775
2785
|
for item in extra_disabled_features:
|
2776
2786
|
if item not in included_disabled_features:
|
2777
2787
|
included_disabled_features.append(item)
|
@@ -2781,6 +2791,7 @@ def get_local_driver(
|
|
2781
2791
|
included_disabled_features.append("OptimizationHintsFetching")
|
2782
2792
|
included_disabled_features.append("Translate")
|
2783
2793
|
included_disabled_features.append("OptimizationTargetPrediction")
|
2794
|
+
included_disabled_features.append("InsecureDownloadWarnings")
|
2784
2795
|
for item in extra_disabled_features:
|
2785
2796
|
if item not in included_disabled_features:
|
2786
2797
|
included_disabled_features.append(item)
|
@@ -3869,7 +3880,7 @@ def get_local_driver(
|
|
3869
3880
|
service=service, options=chrome_options
|
3870
3881
|
)
|
3871
3882
|
return extend_driver(driver)
|
3872
|
-
except Exception:
|
3883
|
+
except Exception as original_exception:
|
3873
3884
|
if is_using_uc(undetectable, browser_name):
|
3874
3885
|
raise
|
3875
3886
|
# Try again if Chrome didn't launch
|
@@ -3905,8 +3916,11 @@ def get_local_driver(
|
|
3905
3916
|
log_output=os.devnull,
|
3906
3917
|
service_args=["--disable-build-check"]
|
3907
3918
|
)
|
3908
|
-
|
3909
|
-
|
3919
|
+
try:
|
3920
|
+
driver = webdriver.Chrome(service=service)
|
3921
|
+
return extend_driver(driver)
|
3922
|
+
except Exception:
|
3923
|
+
raise original_exception
|
3910
3924
|
else:
|
3911
3925
|
raise Exception(
|
3912
3926
|
"%s is not a valid browser option for this system!" % browser_name
|
@@ -7876,27 +7876,7 @@ class BaseCase(unittest.TestCase):
|
|
7876
7876
|
jQuery commands require a CSS_SELECTOR for finding elements.
|
7877
7877
|
This method should only be used for jQuery/JavaScript actions.
|
7878
7878
|
Pure JavaScript doesn't support using a:contains("LINK_TEXT")."""
|
7879
|
-
|
7880
|
-
return selector
|
7881
|
-
elif by == By.ID:
|
7882
|
-
return "#%s" % selector
|
7883
|
-
elif by == By.CLASS_NAME:
|
7884
|
-
return ".%s" % selector
|
7885
|
-
elif by == By.NAME:
|
7886
|
-
return '[name="%s"]' % selector
|
7887
|
-
elif by == By.TAG_NAME:
|
7888
|
-
return selector
|
7889
|
-
elif by == By.XPATH:
|
7890
|
-
return self.convert_xpath_to_css(selector)
|
7891
|
-
elif by == By.LINK_TEXT:
|
7892
|
-
return 'a:contains("%s")' % selector
|
7893
|
-
elif by == By.PARTIAL_LINK_TEXT:
|
7894
|
-
return 'a:contains("%s")' % selector
|
7895
|
-
else:
|
7896
|
-
raise Exception(
|
7897
|
-
"Exception: Could not convert {%s}(by=%s) to CSS_SELECTOR!"
|
7898
|
-
% (selector, by)
|
7899
|
-
)
|
7879
|
+
return js_utils.convert_to_css_selector(selector, by)
|
7900
7880
|
|
7901
7881
|
def set_value(
|
7902
7882
|
self, selector, text, by="css selector", timeout=None, scroll=True
|
@@ -4,10 +4,12 @@ import requests
|
|
4
4
|
import time
|
5
5
|
from selenium.common.exceptions import NoSuchElementException
|
6
6
|
from selenium.common.exceptions import WebDriverException
|
7
|
+
from selenium.webdriver.common.by import By
|
7
8
|
from seleniumbase import config as sb_config
|
8
9
|
from seleniumbase.config import settings
|
9
10
|
from seleniumbase.fixtures import constants
|
10
11
|
from seleniumbase.fixtures import css_to_xpath
|
12
|
+
from seleniumbase.fixtures import xpath_to_css
|
11
13
|
|
12
14
|
|
13
15
|
def wait_for_ready_state_complete(driver, timeout=settings.LARGE_TIMEOUT):
|
@@ -93,6 +95,37 @@ def wait_for_angularjs(driver, timeout=settings.LARGE_TIMEOUT, **kwargs):
|
|
93
95
|
time.sleep(0.05)
|
94
96
|
|
95
97
|
|
98
|
+
def convert_to_css_selector(selector, by=By.CSS_SELECTOR):
|
99
|
+
if by == By.CSS_SELECTOR:
|
100
|
+
return selector
|
101
|
+
elif by == By.ID:
|
102
|
+
return "#%s" % selector
|
103
|
+
elif by == By.CLASS_NAME:
|
104
|
+
return ".%s" % selector
|
105
|
+
elif by == By.NAME:
|
106
|
+
return '[name="%s"]' % selector
|
107
|
+
elif by == By.TAG_NAME:
|
108
|
+
return selector
|
109
|
+
elif (
|
110
|
+
by == By.XPATH
|
111
|
+
or (
|
112
|
+
selector.startswith("/")
|
113
|
+
or selector.startswith("./")
|
114
|
+
or selector.startswith("(")
|
115
|
+
)
|
116
|
+
):
|
117
|
+
return xpath_to_css.convert_xpath_to_css(selector)
|
118
|
+
elif by == By.LINK_TEXT:
|
119
|
+
return 'a:contains("%s")' % selector
|
120
|
+
elif by == By.PARTIAL_LINK_TEXT:
|
121
|
+
return 'a:contains("%s")' % selector
|
122
|
+
else:
|
123
|
+
raise Exception(
|
124
|
+
"Exception: Could not convert {%s}(by=%s) to CSS_SELECTOR!"
|
125
|
+
% (selector, by)
|
126
|
+
)
|
127
|
+
|
128
|
+
|
96
129
|
def is_html_inspector_activated(driver):
|
97
130
|
try:
|
98
131
|
driver.execute_script("HTMLInspector;") # Fails if not defined
|
@@ -325,6 +358,12 @@ def swap_selector_and_by_if_reversed(selector, by):
|
|
325
358
|
return (selector, by)
|
326
359
|
|
327
360
|
|
361
|
+
def call_me_later(driver, script, ms):
|
362
|
+
"""Call script after ms passed."""
|
363
|
+
call = "function() {%s}" % script
|
364
|
+
driver.execute_script("window.setTimeout(%s, %s);" % (call, ms))
|
365
|
+
|
366
|
+
|
328
367
|
def highlight(driver, selector, by="css selector", loops=4):
|
329
368
|
"""For driver.highlight() / driver.page.highlight()"""
|
330
369
|
swap_selector_and_by_if_reversed(selector, by)
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import selenium.webdriver.remote.webelement
|
2
|
+
from seleniumbase.fixtures import js_utils
|
2
3
|
|
3
4
|
|
4
5
|
class WebElement(selenium.webdriver.remote.webelement.WebElement):
|
@@ -8,18 +9,27 @@ class WebElement(selenium.webdriver.remote.webelement.WebElement):
|
|
8
9
|
selector=None,
|
9
10
|
by=None,
|
10
11
|
reconnect_time=None,
|
12
|
+
tag_name=None,
|
11
13
|
):
|
12
14
|
if driver and selector and by:
|
13
|
-
|
15
|
+
delayed_click = False
|
16
|
+
if tag_name == "span" or tag_name == "button" or tag_name == "div":
|
17
|
+
delayed_click = True
|
18
|
+
if delayed_click and ":contains" not in selector:
|
19
|
+
selector = js_utils.convert_to_css_selector(selector, by)
|
20
|
+
script = 'document.querySelector("%s").click();' % selector
|
21
|
+
js_utils.call_me_later(driver, script, 111)
|
22
|
+
else:
|
23
|
+
driver.js_click(selector, by=by, timeout=1)
|
14
24
|
else:
|
15
25
|
super().click()
|
16
26
|
if not reconnect_time:
|
17
|
-
self._parent.reconnect(0.
|
27
|
+
self._parent.reconnect(0.5)
|
18
28
|
else:
|
19
29
|
self._parent.reconnect(reconnect_time)
|
20
30
|
|
21
31
|
def uc_reconnect(self, reconnect_time=None):
|
22
32
|
if not reconnect_time:
|
23
|
-
self._parent.reconnect(0.
|
33
|
+
self._parent.reconnect(0.2)
|
24
34
|
else:
|
25
35
|
self._parent.reconnect(reconnect_time)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: seleniumbase
|
3
|
-
Version: 4.
|
3
|
+
Version: 4.25.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
|
@@ -70,7 +70,7 @@ Requires-Dist: idna ==3.6
|
|
70
70
|
Requires-Dist: chardet ==5.2.0
|
71
71
|
Requires-Dist: charset-normalizer ==3.3.2
|
72
72
|
Requires-Dist: requests ==2.31.0
|
73
|
-
Requires-Dist: pynose ==1.5.
|
73
|
+
Requires-Dist: pynose ==1.5.1
|
74
74
|
Requires-Dist: sniffio ==1.3.1
|
75
75
|
Requires-Dist: h11 ==0.14.0
|
76
76
|
Requires-Dist: outcome ==1.3.0.post0
|
@@ -114,11 +114,11 @@ Requires-Dist: markdown-it-py ==2.2.0 ; python_version < "3.8"
|
|
114
114
|
Requires-Dist: urllib3 <2.3.0,>=1.26.18 ; python_version >= "3.10"
|
115
115
|
Requires-Dist: setuptools >=69.2.0 ; python_version >= "3.8"
|
116
116
|
Requires-Dist: wheel >=0.43.0 ; python_version >= "3.8"
|
117
|
-
Requires-Dist: filelock >=3.13.
|
117
|
+
Requires-Dist: filelock >=3.13.3 ; python_version >= "3.8"
|
118
118
|
Requires-Dist: platformdirs >=4.2.0 ; python_version >= "3.8"
|
119
119
|
Requires-Dist: typing-extensions >=4.10.0 ; python_version >= "3.8"
|
120
|
-
Requires-Dist: trio ==0.
|
121
|
-
Requires-Dist: selenium ==4.
|
120
|
+
Requires-Dist: trio ==0.25.0 ; python_version >= "3.8"
|
121
|
+
Requires-Dist: selenium ==4.19.0 ; python_version >= "3.8"
|
122
122
|
Requires-Dist: pluggy ==1.4.0 ; python_version >= "3.8"
|
123
123
|
Requires-Dist: pytest ==8.1.1 ; python_version >= "3.8"
|
124
124
|
Requires-Dist: pytest-metadata ==3.1.1 ; python_version >= "3.8"
|
@@ -126,13 +126,14 @@ Requires-Dist: pytest-rerunfailures ==14.0 ; python_version >= "3.8"
|
|
126
126
|
Requires-Dist: soupsieve ==2.5 ; python_version >= "3.8"
|
127
127
|
Requires-Dist: markdown-it-py ==3.0.0 ; python_version >= "3.8"
|
128
128
|
Provides-Extra: allure
|
129
|
-
Requires-Dist: allure-pytest ==2.13.
|
130
|
-
Requires-Dist: allure-python-commons ==2.13.
|
131
|
-
Requires-Dist: allure-behave ==2.13.
|
129
|
+
Requires-Dist: allure-pytest ==2.13.4 ; extra == 'allure'
|
130
|
+
Requires-Dist: allure-python-commons ==2.13.4 ; extra == 'allure'
|
131
|
+
Requires-Dist: allure-behave ==2.13.4 ; extra == 'allure'
|
132
132
|
Provides-Extra: coverage
|
133
|
-
Requires-Dist: pytest-cov ==4.1.0 ; extra == 'coverage'
|
134
133
|
Requires-Dist: coverage ==7.2.7 ; (python_version < "3.8") and extra == 'coverage'
|
134
|
+
Requires-Dist: pytest-cov ==4.1.0 ; (python_version < "3.8") and extra == 'coverage'
|
135
135
|
Requires-Dist: coverage ==7.4.4 ; (python_version >= "3.8") and extra == 'coverage'
|
136
|
+
Requires-Dist: pytest-cov ==5.0.0 ; (python_version >= "3.8") and extra == 'coverage'
|
136
137
|
Provides-Extra: flake8
|
137
138
|
Requires-Dist: mccabe ==0.7.0 ; extra == 'flake8'
|
138
139
|
Requires-Dist: flake8 ==5.0.4 ; (python_version < "3.9") and extra == 'flake8'
|
@@ -145,7 +146,7 @@ Provides-Extra: ipdb
|
|
145
146
|
Requires-Dist: ipdb ==0.13.13 ; extra == 'ipdb'
|
146
147
|
Requires-Dist: ipython ==7.34.0 ; extra == 'ipdb'
|
147
148
|
Provides-Extra: pdfminer
|
148
|
-
Requires-Dist: pycparser ==2.
|
149
|
+
Requires-Dist: pycparser ==2.22 ; extra == 'pdfminer'
|
149
150
|
Requires-Dist: pdfminer.six ==20221105 ; (python_version < "3.8") and extra == 'pdfminer'
|
150
151
|
Requires-Dist: cffi ==1.15.1 ; (python_version < "3.8") and extra == 'pdfminer'
|
151
152
|
Requires-Dist: cryptography ==39.0.2 ; (python_version < "3.9") and extra == 'pdfminer'
|
@@ -155,6 +156,8 @@ Requires-Dist: cryptography ==42.0.5 ; (python_version >= "3.9") and extra == 'p
|
|
155
156
|
Provides-Extra: pillow
|
156
157
|
Requires-Dist: Pillow ==9.5.0 ; (python_version < "3.8") and extra == 'pillow'
|
157
158
|
Requires-Dist: Pillow ==10.2.0 ; (python_version >= "3.8") and extra == 'pillow'
|
159
|
+
Provides-Extra: pip-system-certs
|
160
|
+
Requires-Dist: pip-system-certs ==4.0 ; (platform_system == "Windows") and extra == 'pip-system-certs'
|
158
161
|
Provides-Extra: proxy
|
159
162
|
Requires-Dist: proxy.py ==2.4.3 ; extra == 'proxy'
|
160
163
|
Provides-Extra: psutil
|
@@ -5,7 +5,7 @@ sbase/steps.py,sha256=bKT_u5bJkKzYWEuAXi9NVVRYYxQRCM1_YJUrNFFRVPY,42865
|
|
5
5
|
seleniumbase/ReadMe.md,sha256=4nEdto4d0Ch0Zneg0yAC-RBBdqRqPUP0SCo-ze_XDPM,3612
|
6
6
|
seleniumbase/__init__.py,sha256=Mw4ShIWUF2Efjx-JuwUQLWF9nIbxcX-vu9AOGBp32ec,2123
|
7
7
|
seleniumbase/__main__.py,sha256=dn1p6dgCchmcH1zzTzzQvFwwdQQqnTGH6ULV9m4hv24,654
|
8
|
-
seleniumbase/__version__.py,sha256=
|
8
|
+
seleniumbase/__version__.py,sha256=KSzvln4mFv8ChtLQFgg4f_icZ0x9lEj-1w9M2uIQb3o,46
|
9
9
|
seleniumbase/behave/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
10
|
seleniumbase/behave/behave_helper.py,sha256=elkl8P9eLulRAioLstE9baYNM9N_PHBmAOcajX-pH_Y,24198
|
11
11
|
seleniumbase/behave/behave_sb.py,sha256=rpSKGufjzKeoiTqsr1HChNu1fY68CMirr5mgff--LHs,56291
|
@@ -19,7 +19,7 @@ seleniumbase/common/obfuscate.py,sha256=VrwPbVigPH_Jk6ADCk5_miMoq1VK4M9SKnYScDkk
|
|
19
19
|
seleniumbase/common/unobfuscate.py,sha256=MgP6MMT9Wam6ECFVIA84WsQczfl_dFiumFu9m3eXFDg,771
|
20
20
|
seleniumbase/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
21
21
|
seleniumbase/config/ad_block_list.py,sha256=qCQvbpONdSXk6q5tMwLuOswGYE1Syd8cy5TMIYFjTME,3380
|
22
|
-
seleniumbase/config/proxy_list.py,sha256=
|
22
|
+
seleniumbase/config/proxy_list.py,sha256=tSdk82_6pPqClotHMl3YOTlxi9IIEppHmCoQDkZXLqw,1123
|
23
23
|
seleniumbase/config/settings.py,sha256=n07U3PrrTgXgg5S1DIGnRuR6Y7AW11y06lvkflD7ZuE,7708
|
24
24
|
seleniumbase/console_scripts/ReadMe.md,sha256=edWzZCdEpLaUSkzeasVq990ONVPWQSi-F0Y9ZWY5Xuw,20160
|
25
25
|
seleniumbase/console_scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -40,7 +40,7 @@ seleniumbase/console_scripts/sb_print.py,sha256=yo641b_OdSE0GUauOyxk-QrNeIjYzbRY
|
|
40
40
|
seleniumbase/console_scripts/sb_recorder.py,sha256=2QQov64Erfnm1hnVleKX-c_llcsO6hhJKKxzcANcix0,10904
|
41
41
|
seleniumbase/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
42
42
|
seleniumbase/core/application_manager.py,sha256=e_0sjtI8cjY5BNyZj1QBR0j6_oCScxGmSXYEpcYwuZE,576
|
43
|
-
seleniumbase/core/browser_launcher.py,sha256=
|
43
|
+
seleniumbase/core/browser_launcher.py,sha256=xlZqxbA4p3zIpsXGAcJYr-09OtykvdIsDoj6yyOPKYw,166053
|
44
44
|
seleniumbase/core/capabilities_parser.py,sha256=meIS2uHapTCq2ldfNAToC7r0cKmZDRXuYNKExM1GHDY,6038
|
45
45
|
seleniumbase/core/colored_traceback.py,sha256=DrRWfg7XEnKcgY59Xj7Jdk09H-XqHYBSUpB-DiZt6iY,2020
|
46
46
|
seleniumbase/core/create_db_tables.sql,sha256=VWPtrdiW_HQ6yETHjqTu-VIrTwvd8I8o1NfBeaVSHpU,972
|
@@ -70,11 +70,11 @@ seleniumbase/extensions/disable_csp.zip,sha256=YMifIIgEBiLrEFrS1sfW4Exh4br1V4oK1
|
|
70
70
|
seleniumbase/extensions/recorder.zip,sha256=dE3-vt1lsIyMbz3MD0WboizA5KiR3SH2jxAMrC0T_cU,11908
|
71
71
|
seleniumbase/extensions/sbase_ext.zip,sha256=3s1N8zrVaMz8RQEOIoBzC3KDjtmHwVZRvVsX25Odr_s,8175
|
72
72
|
seleniumbase/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
73
|
-
seleniumbase/fixtures/base_case.py,sha256=
|
74
|
-
seleniumbase/fixtures/constants.py,sha256=
|
73
|
+
seleniumbase/fixtures/base_case.py,sha256=3mqQFcrMnT6-AEWuUnCxn4uAX-EAipCJhhiH8I_5XpE,686935
|
74
|
+
seleniumbase/fixtures/constants.py,sha256=Uvr5-Z8ZfiE2-lIqJS1CQ0tkmQ6qJYooCOTo_HMleo4,13348
|
75
75
|
seleniumbase/fixtures/css_to_xpath.py,sha256=9ouDB1xl4MJ2os6JOgTIAyHKOQfuxtxvXC3O5hSnEKA,1954
|
76
76
|
seleniumbase/fixtures/errors.py,sha256=KyxuEVx_e3MPhVrJfNIa_3ltMpbCFxfy_jxK8RFNTns,555
|
77
|
-
seleniumbase/fixtures/js_utils.py,sha256=
|
77
|
+
seleniumbase/fixtures/js_utils.py,sha256=y1FgWvrg7CjryqGnFhbmFIIVYMzQfYZhwppYae87UCo,51158
|
78
78
|
seleniumbase/fixtures/page_actions.py,sha256=s9Tf7sR7HWNQw0riBXuLqThe1HctQWqJIXCLJnnTF4k,61496
|
79
79
|
seleniumbase/fixtures/page_utils.py,sha256=QmAvTlT0j0ESf1IgvyXwHJapJakFM7QqBLXnHXgaeJw,12596
|
80
80
|
seleniumbase/fixtures/shared_utils.py,sha256=9VgFvodh0-3GeGbj5wvWOaG4fLpwmgWkrvIKQ89KMvE,5748
|
@@ -120,7 +120,7 @@ seleniumbase/undetected/dprocess.py,sha256=WWQ_X_-Q7Lfx1m6oxkYHU0eTIc76Jodph4n1Q
|
|
120
120
|
seleniumbase/undetected/options.py,sha256=SGuz8iqlVPYN7IexNiGauupWF0xP3mqO72-9tgIqeuI,2999
|
121
121
|
seleniumbase/undetected/patcher.py,sha256=u8X3uFBCTJ4XcU09AWpbDyPc-dm2LM-YeuciCp5AEdM,10853
|
122
122
|
seleniumbase/undetected/reactor.py,sha256=UT1pEnGaTPZT7-0-xKROk9_eWDZueGzSUrCksc22nyA,2883
|
123
|
-
seleniumbase/undetected/webelement.py,sha256=
|
123
|
+
seleniumbase/undetected/webelement.py,sha256=RXOxTRZStVgtOASkGGA_0dnhrATMIG4-NVw3dvIqIME,1247
|
124
124
|
seleniumbase/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
125
125
|
seleniumbase/utilities/selenium_grid/ReadMe.md,sha256=Uqvn4KmhaMY_jrhcsxL2WptCukPq1J3Yz-9WenCXEu0,3599
|
126
126
|
seleniumbase/utilities/selenium_grid/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -137,9 +137,9 @@ seleniumbase/utilities/selenium_grid/start-grid-hub.sh,sha256=KADv0RUHONLL2_I443
|
|
137
137
|
seleniumbase/utilities/selenium_ide/ReadMe.md,sha256=hznGeuMpkIimqMiZBW-4goIy2ltW4l8X9kb0YSPUQfE,4483
|
138
138
|
seleniumbase/utilities/selenium_ide/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
139
139
|
seleniumbase/utilities/selenium_ide/convert_ide.py,sha256=pZFnqEJQEKZPyNFjkLD29s2HPQgCrWW9XJWpCPhWOoM,31691
|
140
|
-
seleniumbase-4.
|
141
|
-
seleniumbase-4.
|
142
|
-
seleniumbase-4.
|
143
|
-
seleniumbase-4.
|
144
|
-
seleniumbase-4.
|
145
|
-
seleniumbase-4.
|
140
|
+
seleniumbase-4.25.0.dist-info/LICENSE,sha256=odSYtWibXBnQ1gBg6CnDZ82n8kLF_if5-2nbqnEyD8k,1085
|
141
|
+
seleniumbase-4.25.0.dist-info/METADATA,sha256=QnnZkS4EmD-AvLLF246W5KELQveBruWPxuc0JgISwXY,84122
|
142
|
+
seleniumbase-4.25.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
143
|
+
seleniumbase-4.25.0.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
|
144
|
+
seleniumbase-4.25.0.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
|
145
|
+
seleniumbase-4.25.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|