seleniumbase 4.30.0__py3-none-any.whl → 4.30.1__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.
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.30.0"
2
+ __version__ = "4.30.1"
@@ -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` (adds Pdb+ breakpoint for Recorder Mode)
355
- ``--url=URL`` (makes the test start on a specific page)
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 (adds Pdb+ breakpoint for Recorder Mode)")
269
- print(" --url=URL (makes the test start on a specific page)")
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 (adds Pdb+ breakpoint for Recorder Mode)
14
- --url=URL (makes the test start on a specific page)
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 (adds Pdb+ breakpoint for Recorder Mode)\n"
57
- exp += " --url=URL (makes the test start on a specific page)\n"
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
- data.append('with SB(browser="chrome") as sb:')
323
- data.append(
324
- ' sb.open("data:text/html,<div>Hello<br><input></div>")'
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 > div") # selector')
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", "div") # text, selector')
331
- data.append(' sb.highlight("div") # selector')
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("data:text/html,<p>Hello<br><input>")')
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("data:text/html,<p>Hello<br><input>")')
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("")
@@ -863,9 +863,9 @@ def _uc_gui_click_captcha(
863
863
  frame = "%s div[style]" % frame
864
864
  elif (
865
865
  driver.is_element_present('[name*="cf-turnstile-"]')
866
- and driver.is_element_present("div.spacer div[style]")
866
+ and driver.is_element_present("div.spacer div")
867
867
  ):
868
- frame = "div.spacer div[style]"
868
+ frame = "div.spacer div"
869
869
  elif (
870
870
  (
871
871
  driver.is_element_present('[name*="cf-turnstile-"]')
@@ -1099,9 +1099,9 @@ def _uc_gui_handle_captcha(
1099
1099
  frame = '[data-callback="onCaptchaSuccess"]'
1100
1100
  elif (
1101
1101
  driver.is_element_present('[name*="cf-turnstile-"]')
1102
- and driver.is_element_present("div.spacer div[style]")
1102
+ and driver.is_element_present("div.spacer div")
1103
1103
  ):
1104
- frame = "div.spacer div[style]"
1104
+ frame = "div.spacer div"
1105
1105
  elif (
1106
1106
  (
1107
1107
  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.0
3
+ Version: 4.30.1
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.7.4
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
@@ -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=2LQZxA2MHN0gDWi7lH0LnKGsK_Dk0DOG8QJwGK7SeMk,46
8
+ seleniumbase/__version__.py,sha256=jKto8xOawm2OLpcZ-nKhMgUHDDDQia_tGhkwkC5LlW0,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=WQiuXXpsyoKePkkt3aq7XMWr7KBZq7Wk4n2iee-2Ihk,20210
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=54XCmUvOtYT5UmajEZ208wflH5BLkEpHZSmvgaJFSN0,59173
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=t2rxTZTz76RDeSbBdHLaHUDS6LT_p0ttm2H_uYdtBko,16480
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=_Oms_vw4OHofMFyXxKDDX_PD1sdabHGdIrebGHUoC9s,197939
43
+ seleniumbase/core/browser_launcher.py,sha256=4g1-yAa0F4T6P1mVpowhAgh4lS_zAdsl3PJUyoGGh8k,197911
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.0.dist-info/LICENSE,sha256=odSYtWibXBnQ1gBg6CnDZ82n8kLF_if5-2nbqnEyD8k,1085
141
- seleniumbase-4.30.0.dist-info/METADATA,sha256=hsLLWlsN-hlsjf54EJrA6B--5AULFyGjLblKoehSZ6Q,86174
142
- seleniumbase-4.30.0.dist-info/WHEEL,sha256=UvcQYKBHoFqaQd6LKyqHw9fxEolWLQnlzP0h_LgJAfI,91
143
- seleniumbase-4.30.0.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
144
- seleniumbase-4.30.0.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
145
- seleniumbase-4.30.0.dist-info/RECORD,,
140
+ seleniumbase-4.30.1.dist-info/LICENSE,sha256=odSYtWibXBnQ1gBg6CnDZ82n8kLF_if5-2nbqnEyD8k,1085
141
+ seleniumbase-4.30.1.dist-info/METADATA,sha256=dk1FijC0w_vX_BWG1xhFssg8Wo6ELFLIfw6hzpvnH7Y,86175
142
+ seleniumbase-4.30.1.dist-info/WHEEL,sha256=UvcQYKBHoFqaQd6LKyqHw9fxEolWLQnlzP0h_LgJAfI,91
143
+ seleniumbase-4.30.1.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
144
+ seleniumbase-4.30.1.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
145
+ seleniumbase-4.30.1.dist-info/RECORD,,