seleniumbase 4.30.0__py3-none-any.whl → 4.30.2__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/console_scripts/ReadMe.md +4 -2
- seleniumbase/console_scripts/run.py +4 -2
- seleniumbase/console_scripts/sb_mkfile.py +46 -13
- seleniumbase/core/browser_launcher.py +32 -6
- {seleniumbase-4.30.0.dist-info → seleniumbase-4.30.2.dist-info}/METADATA +3 -3
- {seleniumbase-4.30.0.dist-info → seleniumbase-4.30.2.dist-info}/RECORD +11 -11
- {seleniumbase-4.30.0.dist-info → seleniumbase-4.30.2.dist-info}/WHEEL +1 -1
- {seleniumbase-4.30.0.dist-info → seleniumbase-4.30.2.dist-info}/LICENSE +0 -0
- {seleniumbase-4.30.0.dist-info → seleniumbase-4.30.2.dist-info}/entry_points.txt +0 -0
- {seleniumbase-4.30.0.dist-info → seleniumbase-4.30.2.dist-info}/top_level.txt +0 -0
seleniumbase/__version__.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
# seleniumbase package
|
2
|
-
__version__ = "4.30.
|
2
|
+
__version__ = "4.30.2"
|
@@ -350,9 +350,10 @@ sbase mkfile new_test.py
|
|
350
350
|
|
351
351
|
* Options:
|
352
352
|
|
353
|
+
``--uc`` (UC Mode boilerplate using SB context manager)
|
353
354
|
`-b` / `--basic` (Basic boilerplate / single-line test)
|
354
|
-
`-r` / `--rec` (
|
355
|
-
``--url=URL`` (
|
355
|
+
`-r` / `--rec` (Adds Pdb+ breakpoint for Recorder Mode)
|
356
|
+
``--url=URL`` (Makes the test start on a specific page)
|
356
357
|
|
357
358
|
* Language Options:
|
358
359
|
|
@@ -381,6 +382,7 @@ methods: "open", "type", "click", "assert_element",
|
|
381
382
|
and "assert_text". If using the basic boilerplate
|
382
383
|
option, only the "open" method is included. Only the
|
383
384
|
BaseCase format supports Languages or Recorder Mode.
|
385
|
+
UC Mode automatically uses English with SB() format.
|
384
386
|
|
385
387
|
<h3>mkrec / record / codegen</h3>
|
386
388
|
|
@@ -264,9 +264,10 @@ def show_mkfile_usage():
|
|
264
264
|
print(" Example:")
|
265
265
|
print(" sbase mkfile new_test.py")
|
266
266
|
print(" Options:")
|
267
|
+
print(" --uc (UC Mode boilerplate using SB context manager)")
|
267
268
|
print(" -b / --basic (Basic boilerplate / single-line test)")
|
268
|
-
print(" -r / --rec (
|
269
|
-
print(" --url=URL (
|
269
|
+
print(" -r / --rec (Adds Pdb+ breakpoint for Recorder Mode)")
|
270
|
+
print(" --url=URL (Makes the test start on a specific page)")
|
270
271
|
print(" Language Options:")
|
271
272
|
print(" --en / --English | --zh / --Chinese")
|
272
273
|
print(" --nl / --Dutch | --fr / --French")
|
@@ -289,6 +290,7 @@ def show_mkfile_usage():
|
|
289
290
|
print(' and "assert_text". If using the basic boilerplate')
|
290
291
|
print(' option, only the "open" method is included. Only the')
|
291
292
|
print(" BaseCase format supports Languages or Recorder Mode.")
|
293
|
+
print(" UC Mode automatically uses English with SB() format.")
|
292
294
|
print("")
|
293
295
|
|
294
296
|
|
@@ -9,9 +9,10 @@ Example:
|
|
9
9
|
sbase mkfile new_test.py
|
10
10
|
|
11
11
|
Options:
|
12
|
+
--uc (UC Mode boilerplate using SB context manager)
|
12
13
|
-b / --basic (Basic boilerplate / single-line test)
|
13
|
-
-r / --rec (
|
14
|
-
--url=URL (
|
14
|
+
-r / --rec (Adds Pdb+ breakpoint for Recorder Mode)
|
15
|
+
--url=URL (Makes the test start on a specific page)
|
15
16
|
|
16
17
|
Language Options:
|
17
18
|
--en / --English | --zh / --Chinese
|
@@ -37,6 +38,7 @@ Output:
|
|
37
38
|
and "assert_text". If using the basic boilerplate
|
38
39
|
option, only the "open" method is included. Only the
|
39
40
|
BaseCase format supports Languages or Recorder Mode.
|
41
|
+
UC Mode automatically uses English with SB() format.
|
40
42
|
"""
|
41
43
|
import codecs
|
42
44
|
import colorama
|
@@ -52,9 +54,10 @@ def invalid_run_command(msg=None):
|
|
52
54
|
exp += " Example:\n"
|
53
55
|
exp += " sbase mkfile new_test.py\n"
|
54
56
|
exp += " Options:\n"
|
57
|
+
exp += " --uc (UC Mode boilerplate using SB context manager)\n"
|
55
58
|
exp += " -b / --basic (Basic boilerplate / single-line test)\n"
|
56
|
-
exp += " -r / --rec (
|
57
|
-
exp += " --url=URL (
|
59
|
+
exp += " -r / --rec (Adds Pdb+ breakpoint for Recorder Mode)\n"
|
60
|
+
exp += " --url=URL (Makes the test start on a specific page)\n"
|
58
61
|
exp += " Language Options:\n"
|
59
62
|
exp += " --en / --English | --zh / --Chinese\n"
|
60
63
|
exp += " --nl / --Dutch | --fr / --French\n"
|
@@ -77,6 +80,7 @@ def invalid_run_command(msg=None):
|
|
77
80
|
exp += ' and "assert_text". If using the basic boilerplate\n'
|
78
81
|
exp += ' option, only the "open" method is included. Only the\n'
|
79
82
|
exp += " BaseCase format supports Languages or Recorder Mode.\n"
|
83
|
+
exp += " UC Mode automatically uses English with SB() format.\n"
|
80
84
|
if not msg:
|
81
85
|
raise Exception("INVALID RUN COMMAND!\n\n%s" % exp)
|
82
86
|
elif msg == "help":
|
@@ -105,6 +109,7 @@ def main():
|
|
105
109
|
cr = colorama.Style.RESET_ALL
|
106
110
|
|
107
111
|
basic = False
|
112
|
+
use_uc = False
|
108
113
|
help_me = False
|
109
114
|
recorder = False
|
110
115
|
error_msg = None
|
@@ -152,6 +157,9 @@ def main():
|
|
152
157
|
recorder = True
|
153
158
|
elif option == "--record" or option == "--recorder":
|
154
159
|
recorder = True
|
160
|
+
elif use_uc:
|
161
|
+
# UC must use English & ContextManager formats
|
162
|
+
continue
|
155
163
|
elif option == "--en" or option == "--english":
|
156
164
|
language = "English"
|
157
165
|
elif option == "--zh" or option == "--chinese":
|
@@ -184,6 +192,11 @@ def main():
|
|
184
192
|
syntax = "DriverContext"
|
185
193
|
elif option == "--dm" or option == "--driver-manager":
|
186
194
|
syntax = "DriverManager"
|
195
|
+
elif option == "--uc":
|
196
|
+
basic = True
|
197
|
+
language = "English"
|
198
|
+
syntax = "ContextManager"
|
199
|
+
use_uc = True
|
187
200
|
else:
|
188
201
|
invalid_cmd = "\n===> INVALID OPTION: >> %s <<\n" % option
|
189
202
|
invalid_cmd = invalid_cmd.replace(">> ", ">>" + c5 + " ")
|
@@ -319,16 +332,22 @@ def main():
|
|
319
332
|
data = []
|
320
333
|
data.append("from seleniumbase import SB")
|
321
334
|
data.append("")
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
335
|
+
if use_uc:
|
336
|
+
data.append('with SB(uc=True) as sb:')
|
337
|
+
else:
|
338
|
+
data.append('with SB(browser="chrome") as sb:')
|
339
|
+
if use_uc:
|
340
|
+
data.append(' url = "%s"' % url)
|
341
|
+
data.append(" sb.uc_open_with_reconnect(url, 4)")
|
342
|
+
data.append(" sb.uc_gui_click_captcha()")
|
343
|
+
else:
|
344
|
+
data.append(' sb.open("%s")' % url)
|
326
345
|
if not basic:
|
327
346
|
data.append(' sb.type("input", "Goodbye") # selector, text')
|
328
|
-
data.append(' sb.click("html body >
|
347
|
+
data.append(' sb.click("html body > p") # selector')
|
329
348
|
data.append(' sb.assert_element("input") # selector')
|
330
|
-
data.append(' sb.assert_text("Hello", "
|
331
|
-
data.append(' sb.highlight("
|
349
|
+
data.append(' sb.assert_text("Hello", "p") # text, selector')
|
350
|
+
data.append(' sb.highlight("p") # selector')
|
332
351
|
data.append(" sb.sleep(0.5) # seconds")
|
333
352
|
data.append("")
|
334
353
|
new_data = data
|
@@ -337,7 +356,14 @@ def main():
|
|
337
356
|
data.append("from seleniumbase import DriverContext")
|
338
357
|
data.append("")
|
339
358
|
data.append('with DriverContext(browser="chrome") as driver:')
|
340
|
-
data.append(' driver.get("
|
359
|
+
data.append(' driver.get("%s")' % url)
|
360
|
+
if not basic:
|
361
|
+
data.append(' driver.type("input", "Goodbye") # sel, text')
|
362
|
+
data.append(' driver.click("html body > p") # selector')
|
363
|
+
data.append(' driver.assert_element("input") # selector')
|
364
|
+
data.append(' driver.assert_text("Hello", "p") # text, sel')
|
365
|
+
data.append(' driver.highlight("p") # selector')
|
366
|
+
data.append(" driver.sleep(0.5) # seconds")
|
341
367
|
data.append("")
|
342
368
|
new_data = data
|
343
369
|
elif language == "English" and syntax == "DriverManager":
|
@@ -346,7 +372,14 @@ def main():
|
|
346
372
|
data.append("")
|
347
373
|
data.append('driver = Driver(browser="chrome")')
|
348
374
|
data.append("try:")
|
349
|
-
data.append(' driver.get("
|
375
|
+
data.append(' driver.get("%s")' % url)
|
376
|
+
if not basic:
|
377
|
+
data.append(' driver.type("input", "Goodbye") # sel, text')
|
378
|
+
data.append(' driver.click("html body > p") # selector')
|
379
|
+
data.append(' driver.assert_element("input") # selector')
|
380
|
+
data.append(' driver.assert_text("Hello", "p") # text, sel')
|
381
|
+
data.append(' driver.highlight("p") # selector')
|
382
|
+
data.append(" driver.sleep(0.5) # seconds")
|
350
383
|
data.append("finally:")
|
351
384
|
data.append(" driver.quit()")
|
352
385
|
data.append("")
|
@@ -340,17 +340,19 @@ def find_edgedriver_version_to_use(use_version, driver_version):
|
|
340
340
|
return use_version
|
341
341
|
|
342
342
|
|
343
|
-
def
|
343
|
+
def has_captcha(text):
|
344
344
|
if (
|
345
345
|
"<title>403 Forbidden</title>" in text
|
346
346
|
or "Permission Denied</title>" in text
|
347
347
|
or 'id="challenge-error-text"' in text
|
348
348
|
or "<title>Just a moment..." in text
|
349
349
|
or 'action="/?__cf_chl_f_tk' in text
|
350
|
+
or 'id="challenge-widget-' in text
|
350
351
|
or 'src="chromedriver.js"' in text
|
351
352
|
or 'class="g-recaptcha"' in text
|
352
353
|
or 'content="Pixelscan"' in text
|
353
354
|
or 'id="challenge-form"' in text
|
355
|
+
or "/challenge-platform" in text
|
354
356
|
or "window._cf_chl_opt" in text
|
355
357
|
or "/recaptcha/api.js" in text
|
356
358
|
or "/turnstile/" in text
|
@@ -377,7 +379,7 @@ def uc_special_open_if_cf(
|
|
377
379
|
status_str.startswith("3")
|
378
380
|
or status_str.startswith("4")
|
379
381
|
or status_str.startswith("5")
|
380
|
-
or
|
382
|
+
or has_captcha(req_get.text)
|
381
383
|
):
|
382
384
|
special = True
|
383
385
|
if status_str == "403" or status_str == "429":
|
@@ -763,6 +765,8 @@ def _on_a_cf_turnstile_page(driver):
|
|
763
765
|
source = driver.get_page_source()
|
764
766
|
if (
|
765
767
|
'data-callback="onCaptchaSuccess"' in source
|
768
|
+
or "/challenge-platform/scripts/" in source
|
769
|
+
or 'id="challenge-widget-' in source
|
766
770
|
or "cf-turnstile-" in source
|
767
771
|
):
|
768
772
|
return True
|
@@ -863,9 +867,16 @@ def _uc_gui_click_captcha(
|
|
863
867
|
frame = "%s div[style]" % frame
|
864
868
|
elif (
|
865
869
|
driver.is_element_present('[name*="cf-turnstile-"]')
|
866
|
-
and driver.is_element_present("div.spacer div
|
870
|
+
and driver.is_element_present("div.spacer div")
|
867
871
|
):
|
868
|
-
frame = "div.spacer div
|
872
|
+
frame = "div.spacer div"
|
873
|
+
elif (
|
874
|
+
driver.is_element_present('script[src*="challenges.c"]')
|
875
|
+
and driver.is_element_present(
|
876
|
+
'[data-testid*="challenge-"] div'
|
877
|
+
)
|
878
|
+
):
|
879
|
+
frame = '[data-testid*="challenge-"] div'
|
869
880
|
elif (
|
870
881
|
(
|
871
882
|
driver.is_element_present('[name*="cf-turnstile-"]')
|
@@ -883,6 +894,14 @@ def _uc_gui_click_captcha(
|
|
883
894
|
)
|
884
895
|
):
|
885
896
|
frame = "%s .cf-turnstile-wrapper" % frame
|
897
|
+
elif (
|
898
|
+
frame != "iframe"
|
899
|
+
and driver.is_element_present(
|
900
|
+
'%s [name*="cf-turnstile"]' % frame
|
901
|
+
)
|
902
|
+
and driver.is_element_present("%s div" % frame)
|
903
|
+
):
|
904
|
+
frame = "%s div" % frame
|
886
905
|
elif driver.is_element_present(".cf-turnstile-wrapper"):
|
887
906
|
frame = ".cf-turnstile-wrapper"
|
888
907
|
elif driver.is_element_present(
|
@@ -1099,9 +1118,16 @@ def _uc_gui_handle_captcha(
|
|
1099
1118
|
frame = '[data-callback="onCaptchaSuccess"]'
|
1100
1119
|
elif (
|
1101
1120
|
driver.is_element_present('[name*="cf-turnstile-"]')
|
1102
|
-
and driver.is_element_present("div.spacer div
|
1121
|
+
and driver.is_element_present("div.spacer div")
|
1122
|
+
):
|
1123
|
+
frame = "div.spacer div"
|
1124
|
+
elif (
|
1125
|
+
driver.is_element_present('script[src*="challenges.c"]')
|
1126
|
+
and driver.is_element_present(
|
1127
|
+
'[data-testid*="challenge-"] div'
|
1128
|
+
)
|
1103
1129
|
):
|
1104
|
-
frame = "
|
1130
|
+
frame = '[data-testid*="challenge-"] div'
|
1105
1131
|
elif (
|
1106
1132
|
(
|
1107
1133
|
driver.is_element_present('[name*="cf-turnstile-"]')
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: seleniumbase
|
3
|
-
Version: 4.30.
|
3
|
+
Version: 4.30.2
|
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,7 +59,7 @@ Requires-Python: >=3.7
|
|
59
59
|
Description-Content-Type: text/markdown
|
60
60
|
License-File: LICENSE
|
61
61
|
Requires-Dist: attrs >=24.2.0
|
62
|
-
Requires-Dist: certifi >=2024.
|
62
|
+
Requires-Dist: certifi >=2024.8.30
|
63
63
|
Requires-Dist: exceptiongroup >=1.2.2
|
64
64
|
Requires-Dist: parse >=1.20.2
|
65
65
|
Requires-Dist: parse-type >=0.6.3
|
@@ -161,7 +161,7 @@ Requires-Dist: cffi ==1.15.1 ; (python_version < "3.8") and extra == 'pdfminer'
|
|
161
161
|
Requires-Dist: cryptography ==39.0.2 ; (python_version < "3.9") and extra == 'pdfminer'
|
162
162
|
Requires-Dist: pdfminer.six ==20240706 ; (python_version >= "3.8") and extra == 'pdfminer'
|
163
163
|
Requires-Dist: cffi ==1.17.0 ; (python_version >= "3.8") and extra == 'pdfminer'
|
164
|
-
Requires-Dist: cryptography ==43.0.
|
164
|
+
Requires-Dist: cryptography ==43.0.1 ; (python_version >= "3.9") and extra == 'pdfminer'
|
165
165
|
Provides-Extra: pillow
|
166
166
|
Requires-Dist: Pillow ==9.5.0 ; (python_version < "3.8") and extra == 'pillow'
|
167
167
|
Requires-Dist: Pillow >=10.4.0 ; (python_version >= "3.8") and extra == 'pillow'
|
@@ -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=dgq30q6wGO2fJOVYemxC5hLxzv-of-MRn5P1YarBq5k,2263
|
7
7
|
seleniumbase/__main__.py,sha256=dn1p6dgCchmcH1zzTzzQvFwwdQQqnTGH6ULV9m4hv24,654
|
8
|
-
seleniumbase/__version__.py,sha256=
|
8
|
+
seleniumbase/__version__.py,sha256=BdkAfSbnD0GdQ2ws-16m3-ETEGErOpRmMIK6vKT_YUs,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=q4uYZixZBf7VYWnQnEk2weTcyMy1X1faR3vyYvUzDiA,56406
|
@@ -21,18 +21,18 @@ seleniumbase/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
|
|
21
21
|
seleniumbase/config/ad_block_list.py,sha256=qCQvbpONdSXk6q5tMwLuOswGYE1Syd8cy5TMIYFjTME,3380
|
22
22
|
seleniumbase/config/proxy_list.py,sha256=tSdk82_6pPqClotHMl3YOTlxi9IIEppHmCoQDkZXLqw,1123
|
23
23
|
seleniumbase/config/settings.py,sha256=n07U3PrrTgXgg5S1DIGnRuR6Y7AW11y06lvkflD7ZuE,7708
|
24
|
-
seleniumbase/console_scripts/ReadMe.md,sha256=
|
24
|
+
seleniumbase/console_scripts/ReadMe.md,sha256=t2AWWINwkPgnx8HUM3vQRtdFRwBS2XLGxYnmTipeheE,20320
|
25
25
|
seleniumbase/console_scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
26
26
|
seleniumbase/console_scripts/logo_helper.py,sha256=F8pcANlWY6pdcMwHUdjjpjAD9i8XD0R5J-28eSh7QMM,1907
|
27
27
|
seleniumbase/console_scripts/rich_helper.py,sha256=U_zvXpalxVV8rtg8c8EnNNmnh45tii3AV5ZV3O3KbGA,2234
|
28
|
-
seleniumbase/console_scripts/run.py,sha256=
|
28
|
+
seleniumbase/console_scripts/run.py,sha256=H7sWc5Bni_RTk4rWqiLZ6b1lhHnKjfVZjy1xYehl2YE,59327
|
29
29
|
seleniumbase/console_scripts/sb_behave_gui.py,sha256=8uFTnHU3lPsxAlPFbGe4tH4fVryEbQeVBydwJZw3e9c,15403
|
30
30
|
seleniumbase/console_scripts/sb_caseplans.py,sha256=HrML5SU6E_3gC8Ae5byo5tnBidrs0sY3feJ8ug4cR4o,18415
|
31
31
|
seleniumbase/console_scripts/sb_commander.py,sha256=FdRLcEe3xOnnbU1bZI4_1ZLu5eKdR4JuIh37j5M-J00,13585
|
32
32
|
seleniumbase/console_scripts/sb_install.py,sha256=SZlJyN51SzQVR7WKquJtukOo3_h2mK00UMTkb0HEciQ,45682
|
33
33
|
seleniumbase/console_scripts/sb_mkchart.py,sha256=QDDjA8N_Qy62Mgbe2fnSU8mhZbKTVyV9KJRKYz2Tf7Y,11232
|
34
34
|
seleniumbase/console_scripts/sb_mkdir.py,sha256=-OJrGM3upjdhCQb00zxSapS7eVtE49K3bR6KzsGvBbM,30049
|
35
|
-
seleniumbase/console_scripts/sb_mkfile.py,sha256=
|
35
|
+
seleniumbase/console_scripts/sb_mkfile.py,sha256=mZCUl318UkLvW5v1C40Tx19q6_aVJOfTZoKfd3XcakU,18132
|
36
36
|
seleniumbase/console_scripts/sb_mkpres.py,sha256=5MEYFKATmh68wy0SRi2NQtO71MN7m-rQq-WtUp4cKD8,11306
|
37
37
|
seleniumbase/console_scripts/sb_mkrec.py,sha256=AKAbVnkI5nLDpA6W9JZu38QSpJz5IE8Pto-Em9U5r2o,11208
|
38
38
|
seleniumbase/console_scripts/sb_objectify.py,sha256=SRYY_cZ-Ip6Lj65T2maXRyJctOWAFhGSc-Xlc-u-2CM,122140
|
@@ -40,7 +40,7 @@ seleniumbase/console_scripts/sb_print.py,sha256=yo641b_OdSE0GUauOyxk-QrNeIjYzbRY
|
|
40
40
|
seleniumbase/console_scripts/sb_recorder.py,sha256=UQQhnAR18dbcC7ToDvj6TM2PIG5qBrNaekaM6kSK_E8,10970
|
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=S5caztJN0Al8eRFbsTAKQIugD8PpCQnMhvQIqqpO1j8,199052
|
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
|
@@ -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.30.
|
141
|
-
seleniumbase-4.30.
|
142
|
-
seleniumbase-4.30.
|
143
|
-
seleniumbase-4.30.
|
144
|
-
seleniumbase-4.30.
|
145
|
-
seleniumbase-4.30.
|
140
|
+
seleniumbase-4.30.2.dist-info/LICENSE,sha256=odSYtWibXBnQ1gBg6CnDZ82n8kLF_if5-2nbqnEyD8k,1085
|
141
|
+
seleniumbase-4.30.2.dist-info/METADATA,sha256=Zj_V_pSG-9cEhphk9j0wA0vP40xi-Fol8V40UMyTV0M,86175
|
142
|
+
seleniumbase-4.30.2.dist-info/WHEEL,sha256=uCRv0ZEik_232NlR4YDw4Pv3Ajt5bKvMH13NUU7hFuI,91
|
143
|
+
seleniumbase-4.30.2.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
|
144
|
+
seleniumbase-4.30.2.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
|
145
|
+
seleniumbase-4.30.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|