seleniumbase 4.31.4__py3-none-any.whl → 4.31.6__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/__init__.py +13 -6
- seleniumbase/__version__.py +1 -1
- seleniumbase/behave/behave_sb.py +0 -8
- seleniumbase/console_scripts/logo_helper.py +0 -8
- seleniumbase/console_scripts/run.py +344 -341
- seleniumbase/console_scripts/sb_behave_gui.py +0 -7
- seleniumbase/console_scripts/sb_caseplans.py +0 -7
- seleniumbase/console_scripts/sb_commander.py +0 -7
- seleniumbase/console_scripts/sb_install.py +47 -47
- seleniumbase/console_scripts/sb_mkchart.py +13 -20
- seleniumbase/console_scripts/sb_mkdir.py +9 -16
- seleniumbase/console_scripts/sb_mkfile.py +27 -34
- seleniumbase/console_scripts/sb_mkpres.py +13 -20
- seleniumbase/console_scripts/sb_mkrec.py +12 -19
- seleniumbase/console_scripts/sb_objectify.py +30 -30
- seleniumbase/console_scripts/sb_print.py +5 -12
- seleniumbase/console_scripts/sb_recorder.py +0 -7
- seleniumbase/fixtures/base_case.py +0 -4
- seleniumbase/fixtures/shared_utils.py +6 -0
- seleniumbase/plugins/pytest_plugin.py +0 -8
- seleniumbase/plugins/sb_manager.py +1 -6
- seleniumbase/translate/translator.py +0 -7
- {seleniumbase-4.31.4.dist-info → seleniumbase-4.31.6.dist-info}/METADATA +1 -1
- {seleniumbase-4.31.4.dist-info → seleniumbase-4.31.6.dist-info}/RECORD +28 -28
- {seleniumbase-4.31.4.dist-info → seleniumbase-4.31.6.dist-info}/LICENSE +0 -0
- {seleniumbase-4.31.4.dist-info → seleniumbase-4.31.6.dist-info}/WHEEL +0 -0
- {seleniumbase-4.31.4.dist-info → seleniumbase-4.31.6.dist-info}/entry_points.txt +0 -0
- {seleniumbase-4.31.4.dist-info → seleniumbase-4.31.6.dist-info}/top_level.txt +0 -0
@@ -41,90 +41,89 @@ sbase grid-node start --hub=127.0.0.1
|
|
41
41
|
import colorama
|
42
42
|
import sys
|
43
43
|
import time
|
44
|
+
from contextlib import suppress
|
44
45
|
from seleniumbase.config import settings
|
45
46
|
from seleniumbase.fixtures import constants
|
46
47
|
from seleniumbase.fixtures import shared_utils
|
47
48
|
|
48
|
-
if shared_utils.is_windows() and hasattr(colorama, "just_fix_windows_console"):
|
49
|
-
colorama.just_fix_windows_console()
|
50
|
-
else:
|
51
|
-
colorama.init(autoreset=True)
|
52
|
-
|
53
|
-
|
54
|
-
def show_usage():
|
55
|
-
show_basic_usage()
|
56
|
-
sc = ""
|
57
|
-
sc += ' Type "sbase help [COMMAND]" for specific info.\n'
|
58
|
-
sc += ' For all commands, type: "seleniumbase --help".\n'
|
59
|
-
sc += ' Use "pytest" for running tests.\n'
|
60
|
-
if "linux" not in sys.platform:
|
61
|
-
c1 = colorama.Fore.BLUE + colorama.Back.LIGHTCYAN_EX
|
62
|
-
c2 = colorama.Fore.BLUE + colorama.Back.LIGHTGREEN_EX
|
63
|
-
c3 = colorama.Fore.BLUE + colorama.Back.LIGHTYELLOW_EX
|
64
|
-
c4 = colorama.Fore.MAGENTA + colorama.Back.LIGHTYELLOW_EX
|
65
|
-
cr = colorama.Style.RESET_ALL
|
66
|
-
sc = sc.replace("seleniumbase", c1 + "selenium" + c2 + "base" + cr)
|
67
|
-
sc = sc.replace("sbase", c1 + "s" + c2 + "base" + cr)
|
68
|
-
sc = sc.replace("pytest", c3 + "pytest" + cr)
|
69
|
-
sc = sc.replace("--help", c4 + "--help" + cr)
|
70
|
-
sc = sc.replace("help", c4 + "help" + cr)
|
71
|
-
print(sc)
|
72
|
-
|
73
49
|
|
74
50
|
def show_basic_usage():
|
75
51
|
from seleniumbase.console_scripts import logo_helper
|
76
52
|
|
77
53
|
seleniumbase_logo = logo_helper.get_seleniumbase_logo()
|
78
54
|
print(seleniumbase_logo)
|
79
|
-
time.sleep(0.
|
55
|
+
time.sleep(0.035)
|
80
56
|
print("")
|
81
|
-
time.sleep(0.
|
57
|
+
time.sleep(0.031)
|
82
58
|
show_package_location()
|
83
|
-
time.sleep(0.
|
59
|
+
time.sleep(0.031)
|
84
60
|
show_version_info()
|
85
61
|
time.sleep(0.031)
|
86
62
|
print("")
|
87
|
-
time.sleep(0.
|
63
|
+
time.sleep(0.555) # Enough time to see the logo & version
|
88
64
|
sc = ""
|
89
|
-
sc +=
|
90
|
-
sc += '
|
91
|
-
sc += "
|
92
|
-
sc += "
|
93
|
-
sc += "
|
94
|
-
sc += "
|
95
|
-
sc += "
|
96
|
-
sc += "
|
97
|
-
sc += "
|
98
|
-
sc += "
|
99
|
-
sc += "
|
100
|
-
sc += "
|
101
|
-
sc += "
|
102
|
-
sc += "
|
103
|
-
sc += "
|
104
|
-
sc += "
|
105
|
-
sc += "
|
106
|
-
sc += "
|
107
|
-
sc += "
|
108
|
-
sc += "
|
109
|
-
sc += "
|
110
|
-
sc += "
|
111
|
-
sc += "
|
112
|
-
sc += "
|
113
|
-
sc += "
|
114
|
-
sc += "
|
115
|
-
sc += "
|
116
|
-
sc += "
|
117
|
-
sc += "
|
118
|
-
sc += "
|
119
|
-
sc += "
|
120
|
-
sc +=
|
65
|
+
sc += "╭──────────────────────────────────────────────────╮\n"
|
66
|
+
sc += '│ * USAGE: "seleniumbase [COMMAND] [PARAMETERS]" │\n'
|
67
|
+
sc += '│ * OR: "sbase [COMMAND] [PARAMETERS]" │\n'
|
68
|
+
sc += "│ │\n"
|
69
|
+
sc += "│ COMMANDS: PARAMETERS / DESCRIPTIONS: │\n"
|
70
|
+
sc += "│ get / install [DRIVER_NAME] [OPTIONS] │\n"
|
71
|
+
sc += "│ methods (List common Python methods) │\n"
|
72
|
+
sc += "│ options (List common pytest options) │\n"
|
73
|
+
sc += "│ behave-options (List common behave options) │\n"
|
74
|
+
sc += "│ gui / commander [OPTIONAL PATH or TEST FILE] │\n"
|
75
|
+
sc += "│ behave-gui (SBase Commander for Behave) │\n"
|
76
|
+
sc += "│ caseplans [OPTIONAL PATH or TEST FILE] │\n"
|
77
|
+
sc += "│ mkdir [DIRECTORY] [OPTIONS] │\n"
|
78
|
+
sc += "│ mkfile [FILE.py] [OPTIONS] │\n"
|
79
|
+
sc += "│ mkrec / codegen [FILE.py] [OPTIONS] │\n"
|
80
|
+
sc += "│ recorder (Open Recorder Desktop App.) │\n"
|
81
|
+
sc += "│ record (If args: mkrec. Else: App.) │\n"
|
82
|
+
sc += "│ mkpres [FILE.py] [LANG] │\n"
|
83
|
+
sc += "│ mkchart [FILE.py] [LANG] │\n"
|
84
|
+
sc += "│ print [FILE] [OPTIONS] │\n"
|
85
|
+
sc += "│ translate [SB_FILE.py] [LANG] [ACTION] │\n"
|
86
|
+
sc += "│ convert [WEBDRIVER_UNITTEST_FILE.py] │\n"
|
87
|
+
sc += "│ extract-objects [SB_FILE.py] │\n"
|
88
|
+
sc += "│ inject-objects [SB_FILE.py] [OPTIONS] │\n"
|
89
|
+
sc += "│ objectify [SB_FILE.py] [OPTIONS] │\n"
|
90
|
+
sc += "│ revert-objects [SB_FILE.py] [OPTIONS] │\n"
|
91
|
+
sc += "│ encrypt / obfuscate │\n"
|
92
|
+
sc += "│ decrypt / unobfuscate │\n"
|
93
|
+
sc += "│ proxy (Start a basic proxy server) │\n"
|
94
|
+
sc += "│ download server (Get Selenium Grid JAR file) │\n"
|
95
|
+
sc += "│ grid-hub [start|stop] [OPTIONS] │\n"
|
96
|
+
sc += "│ grid-node [start|stop] --hub=[HOST/IP] │\n"
|
97
|
+
sc += "│ │\n"
|
98
|
+
sc += '│ * EXAMPLE => "sbase get chromedriver stable" │\n'
|
99
|
+
sc += '│ * For command info => "sbase help [COMMAND]" │\n'
|
100
|
+
sc += '│ * For info on all commands => "sbase --help" │\n'
|
101
|
+
sc += "╰──────────────────────────────────────────────────╯"
|
121
102
|
sc += ""
|
103
|
+
bordered_sc = sc
|
122
104
|
if "linux" not in sys.platform:
|
123
105
|
c1 = colorama.Fore.BLUE + colorama.Back.LIGHTCYAN_EX
|
124
106
|
c2 = colorama.Fore.BLUE + colorama.Back.LIGHTGREEN_EX
|
107
|
+
c3 = colorama.Fore.BLUE + colorama.Back.LIGHTYELLOW_EX
|
108
|
+
c4 = colorama.Fore.MAGENTA + colorama.Back.LIGHTYELLOW_EX
|
125
109
|
cr = colorama.Style.RESET_ALL
|
126
110
|
sc = sc.replace("seleniumbase", c1 + "selenium" + c2 + "base" + cr)
|
127
111
|
sc = sc.replace("sbase", c1 + "s" + c2 + "base" + cr)
|
112
|
+
sc = sc.replace("[COMMAND]", c3 + "[COMMAND]" + cr)
|
113
|
+
sc = sc.replace("--help", c4 + "--help" + cr)
|
114
|
+
sc = sc.replace("help", c4 + "help" + cr)
|
115
|
+
with suppress(Exception):
|
116
|
+
print(sc)
|
117
|
+
return
|
118
|
+
sc = bordered_sc.replace("╮\n", "")
|
119
|
+
sc = sc.replace("╭", "").replace("╮", "").replace("│", "")
|
120
|
+
sc = sc.replace("╰", "").replace("╯", "").replace("─", "")
|
121
|
+
if "linux" not in sys.platform:
|
122
|
+
sc = sc.replace("seleniumbase", c1 + "selenium" + c2 + "base" + cr)
|
123
|
+
sc = sc.replace("sbase", c1 + "s" + c2 + "base" + cr)
|
124
|
+
sc = sc.replace("[COMMAND]", c3 + "[COMMAND]" + cr)
|
125
|
+
sc = sc.replace("--help", c4 + "--help" + cr)
|
126
|
+
sc = sc.replace("help", c4 + "help" + cr)
|
128
127
|
print(sc)
|
129
128
|
|
130
129
|
|
@@ -136,33 +135,33 @@ def show_install_usage():
|
|
136
135
|
print(sc)
|
137
136
|
print("")
|
138
137
|
print(" Usage:")
|
139
|
-
print("
|
140
|
-
print("
|
141
|
-
print("
|
142
|
-
print("
|
143
|
-
print("
|
144
|
-
print("
|
138
|
+
print(" seleniumbase install [DRIVER_NAME] [OPTIONS]")
|
139
|
+
print(" OR: seleniumbase get [DRIVER_NAME] [OPTIONS]")
|
140
|
+
print(" OR: sbase install [DRIVER_NAME] [OPTIONS]")
|
141
|
+
print(" OR: sbase get [DRIVER_NAME] [OPTIONS]")
|
142
|
+
print(" (Drivers: chromedriver, geckodriver,")
|
143
|
+
print(" edgedriver, iedriver, uc_driver)")
|
145
144
|
print(" Options:")
|
146
|
-
print("
|
147
|
-
print("
|
148
|
-
print("
|
149
|
-
print("
|
145
|
+
print(" VERSION Specify the version to download.")
|
146
|
+
print(" Tries to detect the needed version.")
|
147
|
+
print(" If using chromedriver or edgedriver,")
|
148
|
+
print(" you can use the major version integer.")
|
150
149
|
print()
|
151
|
-
print("
|
150
|
+
print(" -p / --path Also copy driver to /usr/local/bin")
|
152
151
|
print(" Examples:")
|
153
|
-
print("
|
154
|
-
print("
|
155
|
-
print("
|
156
|
-
print("
|
157
|
-
print("
|
158
|
-
print("
|
159
|
-
print("
|
160
|
-
print("
|
152
|
+
print(" sbase get chromedriver")
|
153
|
+
print(" sbase get geckodriver")
|
154
|
+
print(" sbase get edgedriver")
|
155
|
+
print(" sbase get chromedriver 114")
|
156
|
+
print(" sbase get chromedriver 114.0.5735.90")
|
157
|
+
print(" sbase get chromedriver stable")
|
158
|
+
print(" sbase get chromedriver beta")
|
159
|
+
print(" sbase get chromedriver -p")
|
161
160
|
print(" Output:")
|
162
|
-
print("
|
163
|
-
print("
|
164
|
-
print("
|
165
|
-
print("
|
161
|
+
print(" Downloads the webdriver to seleniumbase/drivers/")
|
162
|
+
print(" (chromedriver is required for Chrome automation)")
|
163
|
+
print(" (geckodriver is required for Firefox automation)")
|
164
|
+
print(" (edgedriver is required for MS__Edge automation)")
|
166
165
|
print("")
|
167
166
|
|
168
167
|
|
@@ -174,18 +173,18 @@ def show_commander_usage():
|
|
174
173
|
print(sc)
|
175
174
|
print("")
|
176
175
|
print(" Usage:")
|
177
|
-
print("
|
178
|
-
print("
|
179
|
-
print("
|
180
|
-
print("
|
176
|
+
print(" seleniumbase commander [OPTIONAL PATH or TEST FILE]")
|
177
|
+
print(" OR: sbase commander [OPTIONAL PATH or TEST FILE]")
|
178
|
+
print(" OR: seleniumbase gui [OPTIONAL PATH or TEST FILE]")
|
179
|
+
print(" OR: sbase gui [OPTIONAL PATH or TEST FILE]")
|
181
180
|
print(" Examples:")
|
182
|
-
print("
|
183
|
-
print("
|
184
|
-
print("
|
185
|
-
print("
|
186
|
-
print("
|
181
|
+
print(" sbase gui")
|
182
|
+
print(" sbase gui -k agent")
|
183
|
+
print(" sbase gui -m marker2")
|
184
|
+
print(" sbase gui test_suite.py")
|
185
|
+
print(" sbase gui offline_examples/")
|
187
186
|
print(" Output:")
|
188
|
-
print("
|
187
|
+
print(" Launches SeleniumBase Commander | GUI for pytest.")
|
189
188
|
print("")
|
190
189
|
|
191
190
|
|
@@ -197,16 +196,16 @@ def show_behave_gui_usage():
|
|
197
196
|
print(sc)
|
198
197
|
print("")
|
199
198
|
print(" Usage:")
|
200
|
-
print("
|
201
|
-
print("
|
202
|
-
print("
|
203
|
-
print("
|
199
|
+
print(" seleniumbase behave-gui [OPTIONAL PATH or TEST FILE]")
|
200
|
+
print(" seleniumbase gui-behave [OPTIONAL PATH or TEST FILE]")
|
201
|
+
print(" OR: sbase behave-gui [OPTIONAL PATH or TEST FILE]")
|
202
|
+
print(" OR: sbase gui-behave [OPTIONAL PATH or TEST FILE]")
|
204
203
|
print(" Examples:")
|
205
|
-
print("
|
206
|
-
print("
|
207
|
-
print("
|
204
|
+
print(" sbase behave-gui")
|
205
|
+
print(" sbase behave-gui features/")
|
206
|
+
print(" sbase behave-gui features/calculator.feature")
|
208
207
|
print(" Output:")
|
209
|
-
print("
|
208
|
+
print(" Launches SeleniumBase Commander | GUI for Behave.")
|
210
209
|
print("")
|
211
210
|
|
212
211
|
|
@@ -218,16 +217,16 @@ def show_caseplans_usage():
|
|
218
217
|
print(sc)
|
219
218
|
print("")
|
220
219
|
print(" Usage:")
|
221
|
-
print("
|
222
|
-
print("
|
220
|
+
print(" seleniumbase caseplans [OPTIONAL PATH or TEST FILE]")
|
221
|
+
print(" OR: sbase caseplans [OPTIONAL PATH or TEST FILE]")
|
223
222
|
print(" Examples:")
|
224
|
-
print("
|
225
|
-
print("
|
226
|
-
print("
|
227
|
-
print("
|
228
|
-
print("
|
223
|
+
print(" sbase caseplans")
|
224
|
+
print(" sbase caseplans -k agent")
|
225
|
+
print(" sbase caseplans -m marker2")
|
226
|
+
print(" sbase caseplans test_suite.py")
|
227
|
+
print(" sbase caseplans offline_examples/")
|
229
228
|
print(" Output:")
|
230
|
-
print("
|
229
|
+
print(" Launches the SeleniumBase Case Plans Generator.")
|
231
230
|
print("")
|
232
231
|
|
233
232
|
|
@@ -239,18 +238,18 @@ def show_mkdir_usage():
|
|
239
238
|
print(sc)
|
240
239
|
print("")
|
241
240
|
print(" Usage:")
|
242
|
-
print("
|
243
|
-
print("
|
241
|
+
print(" seleniumbase mkdir [DIRECTORY] [OPTIONS]")
|
242
|
+
print(" OR: sbase mkdir [DIRECTORY] [OPTIONS]")
|
244
243
|
print(" Example:")
|
245
|
-
print("
|
244
|
+
print(" sbase mkdir ui_tests")
|
246
245
|
print(" Options:")
|
247
|
-
print("
|
246
|
+
print(" -b / --basic (Only config files. No tests added.)")
|
248
247
|
print(" Output:")
|
249
|
-
print("
|
250
|
-
print("
|
251
|
-
print("
|
252
|
-
print("
|
253
|
-
print("
|
248
|
+
print(" Creates a new folder for running SBase scripts.")
|
249
|
+
print(" The new folder contains default config files,")
|
250
|
+
print(" sample tests for helping new users get started,")
|
251
|
+
print(" and Python boilerplates for setting up customized")
|
252
|
+
print(" test frameworks.")
|
254
253
|
print("")
|
255
254
|
|
256
255
|
|
@@ -262,38 +261,38 @@ def show_mkfile_usage():
|
|
262
261
|
print(sc)
|
263
262
|
print("")
|
264
263
|
print(" Usage:")
|
265
|
-
print("
|
266
|
-
print("
|
264
|
+
print(" seleniumbase mkfile [FILE.py] [OPTIONS]")
|
265
|
+
print(" OR: sbase mkfile [FILE.py] [OPTIONS]")
|
267
266
|
print(" Example:")
|
268
|
-
print("
|
267
|
+
print(" sbase mkfile new_test.py")
|
269
268
|
print(" Options:")
|
270
|
-
print("
|
271
|
-
print("
|
272
|
-
print("
|
273
|
-
print("
|
269
|
+
print(" --uc (UC Mode boilerplate using SB context manager)")
|
270
|
+
print(" -b / --basic (Basic boilerplate / single-line test)")
|
271
|
+
print(" -r / --rec (Adds Pdb+ breakpoint for Recorder Mode)")
|
272
|
+
print(" --url=URL (Makes the test start on a specific page)")
|
274
273
|
print(" Language Options:")
|
275
|
-
print("
|
276
|
-
print("
|
277
|
-
print("
|
278
|
-
print("
|
279
|
-
print("
|
274
|
+
print(" --en / --English | --zh / --Chinese")
|
275
|
+
print(" --nl / --Dutch | --fr / --French")
|
276
|
+
print(" --it / --Italian | --ja / --Japanese")
|
277
|
+
print(" --ko / --Korean | --pt / --Portuguese")
|
278
|
+
print(" --ru / --Russian | --es / --Spanish")
|
280
279
|
print(" Syntax Formats:")
|
281
|
-
print("
|
282
|
-
print("
|
283
|
-
print("
|
284
|
-
print("
|
285
|
-
print("
|
286
|
-
print("
|
280
|
+
print(" --bc / --basecase (BaseCase class inheritance)")
|
281
|
+
print(" --pf / --pytest-fixture (sb pytest fixture)")
|
282
|
+
print(" --cf / --class-fixture (class + sb pytest fixture)")
|
283
|
+
print(" --cm / --context-manager (SB context manager)")
|
284
|
+
print(" --dc / --driver-context (DriverContext manager)")
|
285
|
+
print(" --dm / --driver-manager (Driver manager)")
|
287
286
|
print(" Output:")
|
288
|
-
print("
|
289
|
-
print("
|
290
|
-
print("
|
291
|
-
print("
|
292
|
-
print('
|
293
|
-
print('
|
294
|
-
print('
|
295
|
-
print("
|
296
|
-
print("
|
287
|
+
print(" Creates a new SBase test file with boilerplate code.")
|
288
|
+
print(" If the file already exists, an error is raised.")
|
289
|
+
print(" By default, uses English with BaseCase inheritance,")
|
290
|
+
print(" and creates a boilerplate with common SeleniumBase")
|
291
|
+
print(' methods: "open", "type", "click", "assert_element",')
|
292
|
+
print(' and "assert_text". If using the basic boilerplate')
|
293
|
+
print(' option, only the "open" method is included. Only the')
|
294
|
+
print(" BaseCase format supports Languages or Recorder Mode.")
|
295
|
+
print(" UC Mode automatically uses English with SB() format.")
|
297
296
|
print("")
|
298
297
|
|
299
298
|
|
@@ -305,22 +304,22 @@ def show_mkrec_usage():
|
|
305
304
|
print(sc)
|
306
305
|
print("")
|
307
306
|
print(" Usage:")
|
308
|
-
print("
|
309
|
-
print("
|
307
|
+
print(" seleniumbase mkrec [FILE.py] [OPTIONS]")
|
308
|
+
print(" OR: sbase mkrec [FILE.py] [OPTIONS]")
|
310
309
|
print(" Examples:")
|
311
|
-
print("
|
312
|
-
print("
|
310
|
+
print(" sbase mkrec new_test.py")
|
311
|
+
print(" sbase mkrec new_test.py --url=wikipedia.org")
|
313
312
|
print(" Options:")
|
314
|
-
print("
|
315
|
-
print("
|
316
|
-
print("
|
317
|
-
print("
|
318
|
-
print("
|
319
|
-
print("
|
320
|
-
print("
|
313
|
+
print(" --url=URL (Sets the initial start page URL.)")
|
314
|
+
print(" --edge (Use Edge browser instead of Chrome.)")
|
315
|
+
print(" --gui / --headed (Use headed mode on Linux.)")
|
316
|
+
print(" --uc / --undetected (Use undetectable mode.)")
|
317
|
+
print(" --ee (Use SHIFT + ESC to end the recording.)")
|
318
|
+
print(" --overwrite (Overwrite file when it exists.)")
|
319
|
+
print(" --behave (Also output Behave/Gherkin files.)")
|
321
320
|
print(" Output:")
|
322
|
-
print("
|
323
|
-
print("
|
321
|
+
print(" Creates a new SeleniumBase test using the Recorder.")
|
322
|
+
print(" If the filename already exists, an error is raised.")
|
324
323
|
print("")
|
325
324
|
|
326
325
|
|
@@ -332,22 +331,22 @@ def show_codegen_usage():
|
|
332
331
|
print(sc)
|
333
332
|
print("")
|
334
333
|
print(" Usage:")
|
335
|
-
print("
|
336
|
-
print("
|
334
|
+
print(" seleniumbase codegen [FILE.py] [OPTIONS]")
|
335
|
+
print(" OR: sbase codegen [FILE.py] [OPTIONS]")
|
337
336
|
print(" Examples:")
|
338
|
-
print("
|
339
|
-
print("
|
337
|
+
print(" sbase codegen new_test.py")
|
338
|
+
print(" sbase codegen new_test.py --url=wikipedia.org")
|
340
339
|
print(" Options:")
|
341
|
-
print("
|
342
|
-
print("
|
343
|
-
print("
|
344
|
-
print("
|
345
|
-
print("
|
346
|
-
print("
|
347
|
-
print("
|
340
|
+
print(" --url=URL (Sets the initial start page URL.)")
|
341
|
+
print(" --edge (Use Edge browser instead of Chrome.)")
|
342
|
+
print(" --gui / --headed (Use headed mode on Linux.)")
|
343
|
+
print(" --uc / --undetected (Use undetectable mode.)")
|
344
|
+
print(" --ee (Use SHIFT + ESC to end the recording.)")
|
345
|
+
print(" --overwrite (Overwrite file when it exists.)")
|
346
|
+
print(" --behave (Also output Behave/Gherkin files.)")
|
348
347
|
print(" Output:")
|
349
|
-
print("
|
350
|
-
print("
|
348
|
+
print(" Creates a new SeleniumBase test using the Recorder.")
|
349
|
+
print(" If the filename already exists, an error is raised.")
|
351
350
|
print("")
|
352
351
|
|
353
352
|
|
@@ -359,13 +358,13 @@ def show_recorder_usage():
|
|
359
358
|
print(sc)
|
360
359
|
print("")
|
361
360
|
print(" Usage:")
|
362
|
-
print("
|
363
|
-
print("
|
361
|
+
print(" seleniumbase recorder [OPTIONS]")
|
362
|
+
print(" OR: sbase recorder [OPTIONS]")
|
364
363
|
print(" Options:")
|
365
|
-
print("
|
366
|
-
print("
|
364
|
+
print(" --uc / --undetected (Use undetectable mode.)")
|
365
|
+
print(" --behave (Also output Behave/Gherkin files.)")
|
367
366
|
print(" Output:")
|
368
|
-
print("
|
367
|
+
print(" Launches the SeleniumBase Recorder Desktop App.")
|
369
368
|
print("")
|
370
369
|
|
371
370
|
|
@@ -377,22 +376,22 @@ def show_mkpres_usage():
|
|
377
376
|
print(sc)
|
378
377
|
print("")
|
379
378
|
print(" Usage:")
|
380
|
-
print("
|
381
|
-
print("
|
379
|
+
print(" seleniumbase mkpres [FILE.py] [LANG]")
|
380
|
+
print(" OR: sbase mkpres [FILE.py] [LANG]")
|
382
381
|
print(" Example:")
|
383
|
-
print("
|
382
|
+
print(" sbase mkpres new_presentation.py --en")
|
384
383
|
print(" Language Options:")
|
385
|
-
print("
|
386
|
-
print("
|
387
|
-
print("
|
388
|
-
print("
|
389
|
-
print("
|
384
|
+
print(" --en / --English | --zh / --Chinese")
|
385
|
+
print(" --nl / --Dutch | --fr / --French")
|
386
|
+
print(" --it / --Italian | --ja / --Japanese")
|
387
|
+
print(" --ko / --Korean | --pt / --Portuguese")
|
388
|
+
print(" --ru / --Russian | --es / --Spanish")
|
390
389
|
print(" Output:")
|
391
|
-
print("
|
392
|
-
print("
|
393
|
-
print("
|
394
|
-
print('
|
395
|
-
print("
|
390
|
+
print(" Creates a new presentation with 3 example slides.")
|
391
|
+
print(" If the file already exists, an error is raised.")
|
392
|
+
print(" By default, the slides are written in English,")
|
393
|
+
print(' and use "serif" theme with "slide" transition.')
|
394
|
+
print(" The slides can be used as a basic boilerplate.")
|
396
395
|
print("")
|
397
396
|
|
398
397
|
|
@@ -404,22 +403,22 @@ def show_mkchart_usage():
|
|
404
403
|
print(sc)
|
405
404
|
print("")
|
406
405
|
print(" Usage:")
|
407
|
-
print("
|
408
|
-
print("
|
406
|
+
print(" seleniumbase mkchart [FILE.py] [LANG]")
|
407
|
+
print(" OR: sbase mkchart [FILE.py] [LANG]")
|
409
408
|
print(" Example:")
|
410
|
-
print("
|
409
|
+
print(" sbase mkchart new_chart.py --en")
|
411
410
|
print(" Language Options:")
|
412
|
-
print("
|
413
|
-
print("
|
414
|
-
print("
|
415
|
-
print("
|
416
|
-
print("
|
411
|
+
print(" --en / --English | --zh / --Chinese")
|
412
|
+
print(" --nl / --Dutch | --fr / --French")
|
413
|
+
print(" --it / --Italian | --ja / --Japanese")
|
414
|
+
print(" --ko / --Korean | --pt / --Portuguese")
|
415
|
+
print(" --ru / --Russian | --es / --Spanish")
|
417
416
|
print(" Output:")
|
418
|
-
print("
|
419
|
-
print("
|
420
|
-
print("
|
421
|
-
print('
|
422
|
-
print("
|
417
|
+
print(" Creates a new SeleniumBase chart presentation.")
|
418
|
+
print(" If the file already exists, an error is raised.")
|
419
|
+
print(" By default, the slides are written in English,")
|
420
|
+
print(' and use a "sky" theme with "slide" transition.')
|
421
|
+
print(" The chart can be used as a basic boilerplate.")
|
423
422
|
print("")
|
424
423
|
|
425
424
|
|
@@ -431,13 +430,13 @@ def show_convert_usage():
|
|
431
430
|
print(sc)
|
432
431
|
print("")
|
433
432
|
print(" Usage:")
|
434
|
-
print("
|
435
|
-
print("
|
433
|
+
print(" seleniumbase convert [WEBDRIVER_UNITTEST_FILE.py]")
|
434
|
+
print(" OR: sbase convert [WEBDRIVER_UNITTEST_FILE.py]")
|
436
435
|
print(" Output:")
|
437
|
-
print("
|
438
|
-
print("
|
439
|
-
print("
|
440
|
-
print("
|
436
|
+
print(" Converts a Selenium IDE exported WebDriver unittest")
|
437
|
+
print(" file into a SeleniumBase file. Adds _SB to the new")
|
438
|
+
print(" file name while keeping the original file intact.")
|
439
|
+
print(" (Works with Katalon Recorder Selenium scripts.)")
|
441
440
|
print("")
|
442
441
|
|
443
442
|
|
@@ -449,13 +448,13 @@ def show_print_usage():
|
|
449
448
|
print(sc)
|
450
449
|
print("")
|
451
450
|
print(" Usage:")
|
452
|
-
print("
|
453
|
-
print("
|
451
|
+
print(" seleniumbase print [FILE] [OPTIONS]")
|
452
|
+
print(" OR: sbase print [FILE] [OPTIONS]")
|
454
453
|
print(" Options:")
|
455
|
-
print("
|
454
|
+
print(" -n (Add line Numbers to the rows)")
|
456
455
|
print(" Output:")
|
457
|
-
print("
|
458
|
-
print("
|
456
|
+
print(" Prints the code/text of any file")
|
457
|
+
print(" with syntax-highlighting.")
|
459
458
|
print("")
|
460
459
|
|
461
460
|
|
@@ -467,30 +466,30 @@ def show_translate_usage():
|
|
467
466
|
print(sc)
|
468
467
|
print("")
|
469
468
|
print(" Usage:")
|
470
|
-
print("
|
471
|
-
print("
|
469
|
+
print(" seleniumbase translate [SB_FILE.py] [LANG] [ACTION]")
|
470
|
+
print(" OR: sbase translate [SB_FILE.py] [LANG] [ACTION]")
|
472
471
|
print(" Languages:")
|
473
|
-
print("
|
474
|
-
print("
|
475
|
-
print("
|
476
|
-
print("
|
477
|
-
print("
|
472
|
+
print(" --en / --English | --zh / --Chinese")
|
473
|
+
print(" --nl / --Dutch | --fr / --French")
|
474
|
+
print(" --it / --Italian | --ja / --Japanese")
|
475
|
+
print(" --ko / --Korean | --pt / --Portuguese")
|
476
|
+
print(" --ru / --Russian | --es / --Spanish")
|
478
477
|
print(" Actions:")
|
479
|
-
print("
|
480
|
-
print("
|
481
|
-
print("
|
478
|
+
print(" -p / --print (Print translation output to the screen)")
|
479
|
+
print(" -o / --overwrite (Overwrite the file being translated)")
|
480
|
+
print(" -c / --copy (Copy the translation to a new .py file)")
|
482
481
|
print(" Options:")
|
483
|
-
print("
|
482
|
+
print(" -n (include line Numbers when using the Print action)")
|
484
483
|
print(" Output:")
|
485
|
-
print("
|
486
|
-
print('
|
487
|
-
print("
|
488
|
-
print('
|
489
|
-
print('
|
490
|
-
print("
|
491
|
-
print("
|
492
|
-
print('
|
493
|
-
print('
|
484
|
+
print(" Translates a SeleniumBase Python file into the language")
|
485
|
+
print(' specified. Method calls and "import" lines get swapped.')
|
486
|
+
print(" Both a language and an action must be specified.")
|
487
|
+
print(' The "-p" action can be paired with one other action.')
|
488
|
+
print(' When running with "-c" (or "--copy"), the new file name')
|
489
|
+
print(" will be the original name appended with an underscore")
|
490
|
+
print(" plus the 2-letter language code of the new language.")
|
491
|
+
print(' (Example: Translating "test_1.py" into Japanese with')
|
492
|
+
print(' "-c" will create a new file called "test_1_ja.py".)')
|
494
493
|
print("")
|
495
494
|
|
496
495
|
|
@@ -502,12 +501,12 @@ def show_extract_objects_usage():
|
|
502
501
|
print(sc)
|
503
502
|
print("")
|
504
503
|
print(" Usage:")
|
505
|
-
print("
|
506
|
-
print("
|
504
|
+
print(" seleniumbase extract-objects [SB_FILE.py]")
|
505
|
+
print(" OR: sbase extract-objects [SB_FILE.py]")
|
507
506
|
print(" Output:")
|
508
|
-
print("
|
509
|
-
print("
|
510
|
-
print('
|
507
|
+
print(" Creates page objects based on selectors found in a")
|
508
|
+
print(" seleniumbase Python file and saves those objects to the")
|
509
|
+
print(' "page_objects.py" file in the same folder as the tests.')
|
511
510
|
print("")
|
512
511
|
|
513
512
|
|
@@ -519,15 +518,15 @@ def show_inject_objects_usage():
|
|
519
518
|
print(sc)
|
520
519
|
print("")
|
521
520
|
print(" Usage:")
|
522
|
-
print("
|
523
|
-
print("
|
521
|
+
print(" seleniumbase inject-objects [SB_FILE.py] [OPTIONS]")
|
522
|
+
print(" OR: sbase inject-objects [SB_FILE.py] [OPTIONS]")
|
524
523
|
print(" Options:")
|
525
|
-
print("
|
526
|
-
print("
|
524
|
+
print(" -c, --comments (Add object selectors to the comments.)")
|
525
|
+
print(" (Default: No added comments.)")
|
527
526
|
print(" Output:")
|
528
|
-
print('
|
529
|
-
print("
|
530
|
-
print("
|
527
|
+
print(' Takes the page objects found in the "page_objects.py"')
|
528
|
+
print(" file and uses those to replace matching selectors in")
|
529
|
+
print(" the selected seleniumbase Python file.")
|
531
530
|
print("")
|
532
531
|
|
533
532
|
|
@@ -539,18 +538,18 @@ def show_objectify_usage():
|
|
539
538
|
print(sc)
|
540
539
|
print("")
|
541
540
|
print(" Usage:")
|
542
|
-
print("
|
543
|
-
print("
|
541
|
+
print(" seleniumbase objectify [SB_FILE.py] [OPTIONS]")
|
542
|
+
print(" OR: sbase objectify [SB_FILE.py] [OPTIONS]")
|
544
543
|
print(" Options:")
|
545
|
-
print("
|
546
|
-
print("
|
544
|
+
print(" -c, --comments (Add object selectors to the comments.)")
|
545
|
+
print(" (Default: No added comments.)")
|
547
546
|
print(" Output:")
|
548
|
-
print("
|
549
|
-
print("
|
550
|
-
print('
|
547
|
+
print(" A modified version of the file where the selectors")
|
548
|
+
print(" have been replaced with variable names defined in")
|
549
|
+
print(' "page_objects.py", supporting the Page Object Pattern.')
|
551
550
|
print("")
|
552
|
-
print('
|
553
|
-
print('
|
551
|
+
print(' (seleniumbase "objectify" has the same outcome as')
|
552
|
+
print(' combining "extract-objects" with "inject-objects")')
|
554
553
|
print("")
|
555
554
|
|
556
555
|
|
@@ -562,16 +561,16 @@ def show_revert_objects_usage():
|
|
562
561
|
print(sc)
|
563
562
|
print("")
|
564
563
|
print(" Usage:")
|
565
|
-
print("
|
566
|
-
print("
|
564
|
+
print(" seleniumbase revert-objects [SB_FILE.py] [OPTIONS]")
|
565
|
+
print(" OR: sbase revert-objects [SB_FILE.py] [OPTIONS]")
|
567
566
|
print(" Options:")
|
568
|
-
print("
|
569
|
-
print("
|
567
|
+
print(" -c, --comments (Keep existing comments for the lines.)")
|
568
|
+
print(" (Default: No comments are kept.)")
|
570
569
|
print(" Output:")
|
571
|
-
print('
|
572
|
-
print('
|
573
|
-
print("
|
574
|
-
print('
|
570
|
+
print(' Reverts the changes made by "seleniumbase objectify" or')
|
571
|
+
print(' "seleniumbase inject-objects" when run against a')
|
572
|
+
print(" seleniumbase Python file. Objects will get replaced by")
|
573
|
+
print(' selectors stored in the "page_objects.py" file.')
|
575
574
|
print("")
|
576
575
|
|
577
576
|
|
@@ -583,12 +582,12 @@ def show_encrypt_usage():
|
|
583
582
|
print(sc)
|
584
583
|
print("")
|
585
584
|
print(" Usage:")
|
586
|
-
print("
|
587
|
-
print("
|
588
|
-
print("
|
585
|
+
print(" seleniumbase encrypt || seleniumbase obfuscate")
|
586
|
+
print(" --OR--")
|
587
|
+
print(" sbase encrypt || sbase obfuscate")
|
589
588
|
print(" Output:")
|
590
|
-
print("
|
591
|
-
print("
|
589
|
+
print(" Runs the password encryption/obfuscation tool.")
|
590
|
+
print(" (Where you can enter a password to encrypt/obfuscate.)")
|
592
591
|
print("")
|
593
592
|
|
594
593
|
|
@@ -600,12 +599,12 @@ def show_decrypt_usage():
|
|
600
599
|
print(sc)
|
601
600
|
print("")
|
602
601
|
print(" Usage:")
|
603
|
-
print("
|
604
|
-
print("
|
605
|
-
print("
|
602
|
+
print(" seleniumbase decrypt || seleniumbase unobfuscate")
|
603
|
+
print(" --OR--")
|
604
|
+
print(" sbase decrypt || sbase unobfuscate")
|
606
605
|
print(" Output:")
|
607
|
-
print("
|
608
|
-
print("
|
606
|
+
print(" Runs the password decryption/unobfuscation tool.")
|
607
|
+
print(" (Where you can enter an encrypted password to decrypt.)")
|
609
608
|
print("")
|
610
609
|
|
611
610
|
|
@@ -617,11 +616,11 @@ def show_download_usage():
|
|
617
616
|
print(sc)
|
618
617
|
print("")
|
619
618
|
print(" Usage:")
|
620
|
-
print("
|
621
|
-
print("
|
619
|
+
print(" seleniumbase download server")
|
620
|
+
print(" OR: sbase download server")
|
622
621
|
print(" Output:")
|
623
|
-
print("
|
624
|
-
print("
|
622
|
+
print(" Downloads the Selenium Standalone Server.")
|
623
|
+
print(" (Server is required for using your own Selenium Grid.)")
|
625
624
|
print("")
|
626
625
|
|
627
626
|
|
@@ -633,22 +632,22 @@ def show_grid_hub_usage():
|
|
633
632
|
print(sc)
|
634
633
|
print("")
|
635
634
|
print(" Usage:")
|
636
|
-
print("
|
637
|
-
print("
|
635
|
+
print(" seleniumbase grid-hub {start|stop|restart} [OPTIONS]")
|
636
|
+
print(" OR: sbase grid-hub {start|stop|restart} [OPTIONS]")
|
638
637
|
print(" Options:")
|
639
|
-
print("
|
640
|
-
print("
|
641
|
-
print("
|
642
|
-
print("
|
643
|
-
print("
|
638
|
+
print(" -v, --verbose (Increase verbosity of logging output.)")
|
639
|
+
print(" (Default: Quiet logging / not verbose.)")
|
640
|
+
print(" --timeout=TIMEOUT (Close idle browser after TIMEOUT.)")
|
641
|
+
print(" (The default TIMEOUT: 230 seconds.)")
|
642
|
+
print(" (Use --timeout=0 to skip timeouts.)")
|
644
643
|
print(" Example:")
|
645
|
-
print("
|
644
|
+
print(" seleniumbase grid-hub start")
|
646
645
|
print(" Output:")
|
647
|
-
print("
|
648
|
-
print("
|
649
|
-
print("
|
650
|
-
print("
|
651
|
-
print('
|
646
|
+
print(" Controls the Selenium Grid Hub Server, which allows")
|
647
|
+
print(" for running tests on multiple machines in parallel")
|
648
|
+
print(" to speed up test runs and reduce the total time")
|
649
|
+
print(" of test suite execution.")
|
650
|
+
print(' You can "start" or "stop" the Grid Hub server.')
|
652
651
|
print("")
|
653
652
|
|
654
653
|
|
@@ -660,19 +659,19 @@ def show_grid_node_usage():
|
|
660
659
|
print(sc)
|
661
660
|
print("")
|
662
661
|
print(" Usage:")
|
663
|
-
print("
|
664
|
-
print("
|
662
|
+
print(" seleniumbase grid-node {start|stop|restart} [OPTIONS]")
|
663
|
+
print(" OR: sbase grid-node {start|stop|restart} [OPTIONS]")
|
665
664
|
print(" Options:")
|
666
|
-
print("
|
667
|
-
print("
|
668
|
-
print("
|
669
|
-
print("
|
665
|
+
print(" --hub=[HOST/IP] (The Grid Hub Hostname / IP Address.)")
|
666
|
+
print(" (Default: 127.0.0.1 if not set.)")
|
667
|
+
print(" -v, --verbose (Increase verbosity of logging output.)")
|
668
|
+
print(" (Default: Quiet logging / Not verbose.)")
|
670
669
|
print(" Example:")
|
671
|
-
print("
|
670
|
+
print(" seleniumbase grid-node start --hub=127.0.0.1")
|
672
671
|
print(" Output:")
|
673
|
-
print("
|
674
|
-
print("
|
675
|
-
print('
|
672
|
+
print(" Controls the Selenium Grid node, which serves as a")
|
673
|
+
print(" worker machine for your Selenium Grid Hub server.")
|
674
|
+
print(' You can "start" or "stop" the Grid node.')
|
676
675
|
print("")
|
677
676
|
|
678
677
|
|
@@ -799,16 +798,16 @@ def show_options():
|
|
799
798
|
line = '(Some options are Chromium-specific, e.g. "--guest --mobile")'
|
800
799
|
print(line)
|
801
800
|
op = "\n"
|
802
|
-
op += '--browser=BROWSER (Choice of web browser. Default is "chrome"
|
803
|
-
op += "--edge / --firefox / --safari (Shortcut for browser selection
|
804
|
-
op += "--headless (Run tests headlessly. Default setting on Linux OS
|
805
|
-
op += "--demo (Slow down and visually see test actions as they occur
|
806
|
-
op += "--slow (Slow down the automation. Faster than using Demo Mode
|
801
|
+
op += '--browser=BROWSER (Choice of web browser. Default is "chrome")\n'
|
802
|
+
op += "--edge / --firefox / --safari (Shortcut for browser selection)\n"
|
803
|
+
op += "--headless (Run tests headlessly. Default setting on Linux OS)\n"
|
804
|
+
op += "--demo (Slow down and visually see test actions as they occur)\n"
|
805
|
+
op += "--slow (Slow down the automation. Faster than using Demo Mode)\n"
|
807
806
|
op += "--rs / --reuse-session (Reuse browser session between tests.)\n"
|
808
807
|
op += "--reuse-class-session / --rcs (RS, but for class tests only.)\n"
|
809
808
|
op += "--crumbs (Clear all cookies between tests reusing a session.)\n"
|
810
|
-
op += "--maximize (Start tests with the
|
811
|
-
op += "--dashboard (Enable SeleniumBase
|
809
|
+
op += "--maximize (Start tests with the browser window maximized)\n"
|
810
|
+
op += "--dashboard (Enable SeleniumBase Dashboard at dashboard.html)\n"
|
812
811
|
op += "--incognito (Enable Chromium's Incognito Mode.)\n"
|
813
812
|
op += "--guest (Enable Chromium's Guest Mode.)\n"
|
814
813
|
op += "--dark (Enable Chromium's Dark Mode.)\n"
|
@@ -820,15 +819,15 @@ def show_options():
|
|
820
819
|
op += "--collect-only / --co (Only show discovered tests. No run.)\n"
|
821
820
|
op += "--co -q (Only show full names of discovered tests. No run.)\n"
|
822
821
|
op += "-x (Stop running tests after the first failure is reached.)\n"
|
823
|
-
op += "--pdb (Enter
|
824
|
-
op += "--trace (Enter Debug Mode immediately after starting
|
825
|
-
op += "
|
826
|
-
op += "
|
827
|
-
op += "
|
828
|
-
op += "
|
829
|
-
op += "
|
822
|
+
op += "--pdb (Enter Post Mortem Debug Mode after any test fails.)\n"
|
823
|
+
op += "--trace (Enter Debug Mode immediately after starting tests.)\n"
|
824
|
+
op += " | Debug Mode Commands >>> help / h: List all commands. |\n"
|
825
|
+
op += " | n: Next line of method. s: Step into. c: Continue. |\n"
|
826
|
+
op += " | where / w: Show stack spot. u: Up stack. d: Down stack. |\n"
|
827
|
+
op += " | return / r: Run until method returns. j: Jump to line. |\n"
|
828
|
+
op += " | longlist / ll: See code. dir(): List namespace objects. |\n"
|
830
829
|
op += "--help / -h (Display list of all available pytest options.)\n"
|
831
|
-
op += "--ftrace / --final-trace (Enter Debug Mode after
|
830
|
+
op += "--ftrace / --final-trace (Enter Debug Mode after tests end.)\n"
|
832
831
|
op += "--recorder / --rec (Save browser actions as Python scripts.)\n"
|
833
832
|
op += "--rec-behave / --rec-gherkin (Save actions as Gherkin code.)\n"
|
834
833
|
op += "--rec-print (Display recorded scripts when they are created.)\n"
|
@@ -841,14 +840,14 @@ def show_options():
|
|
841
840
|
op += '--metrics=STRING (Set mobile "CSSWidth,CSSHeight,PixelRatio".)\n'
|
842
841
|
op += "--ad-block (Block certain types of iframe ads from appearing.)\n"
|
843
842
|
op += "--settings-file=FILE (Override default SeleniumBase settings.)\n"
|
844
|
-
op += '--env=ENV (Set the test env.
|
845
|
-
op += '--data=DATA (Extra test data.
|
846
|
-
op += "--disable-csp (Disable the Content Security Policy of
|
847
|
-
op += "--remote-debug (Sync to
|
843
|
+
op += '--env=ENV (Set the test env. Use "self.env" to access.)\n'
|
844
|
+
op += '--data=DATA (Extra test data. Use "self.data" to access.)\n'
|
845
|
+
op += "--disable-csp (Disable the Content Security Policy of sites.)\n"
|
846
|
+
op += "--remote-debug (Sync to Ch_Debugger chrome://inspect/#devices)\n"
|
848
847
|
op += "--server=SERVER (The Selenium Grid server/IP used for tests.)\n"
|
849
848
|
op += "--port=PORT (The Selenium Grid port used by the test server.)\n"
|
850
|
-
op += "--proxy=SERVER:PORT (Connect to a proxy server:port for tests
|
851
|
-
op += "--proxy=USER:PASS@SERVER:PORT (Use authenticated proxy server
|
849
|
+
op += "--proxy=SERVER:PORT (Connect to a proxy server:port for tests)\n"
|
850
|
+
op += "--proxy=USER:PASS@SERVER:PORT (Use authenticated proxy server)\n"
|
852
851
|
op += cr
|
853
852
|
op = op.replace("\n-", "\n" + c1 + "-").replace(" (", cr + " (")
|
854
853
|
op = op.replace(" / -", cr + " / " + c1 + "-")
|
@@ -858,7 +857,8 @@ def show_options():
|
|
858
857
|
op = op.replace("Debug Mode Commands", c5 + "Debug Mode Commands" + c3)
|
859
858
|
op = op.replace(">>>", c4 + ">>>" + c3)
|
860
859
|
print(op)
|
861
|
-
line = "
|
860
|
+
line = "To view all " + c3 + "pytest" + cr
|
861
|
+
line += " " + c2 + "command-line options" + cr
|
862
862
|
line += ', type: "' + c3 + "pytest" + cr + " " + c1 + "--help" + cr + '".'
|
863
863
|
print(line)
|
864
864
|
print("")
|
@@ -880,14 +880,14 @@ def show_behave_options():
|
|
880
880
|
line = '(Some options are Chromium-specific, e.g. "-D guest -D mobile")'
|
881
881
|
print(line)
|
882
882
|
op = "\n"
|
883
|
-
op += '-D browser=BROWSER (
|
883
|
+
op += '-D browser=BROWSER (Choice of web browser. Default is "chrome")\n'
|
884
884
|
op += "-D headless (Run tests headlessly. Default mode on Linux OS.)\n"
|
885
|
-
op += "-D demo (Slow down and visually see test actions as they occur
|
886
|
-
op += "-D slow (Slow down the automation. Faster than using Demo Mode
|
885
|
+
op += "-D demo (Slow down and visually see test actions as they occur)\n"
|
886
|
+
op += "-D slow (Slow down the automation. Faster than using Demo Mode)\n"
|
887
887
|
op += "-D reuse-session / -D rs (Reuse browser session between tests.)\n"
|
888
888
|
op += "-D crumbs (Clear all cookies between tests reusing a session.)\n"
|
889
|
-
op += "-D maximize (Start tests with the web browser window maximized
|
890
|
-
op += "-D dashboard (Enable SeleniumBase
|
889
|
+
op += "-D maximize (Start tests with the web browser window maximized)\n"
|
890
|
+
op += "-D dashboard (Enable SeleniumBase Dashboard at dashboard.html)\n"
|
891
891
|
op += "-D incognito (Enable Chromium's Incognito Mode.)\n"
|
892
892
|
op += "-D guest (Enable Chromium's Guest Mode.)\n"
|
893
893
|
op += "-D dark (Enable Chromium's Dark Mode.)\n"
|
@@ -896,11 +896,11 @@ def show_behave_options():
|
|
896
896
|
op += "--dry-run / -d (Dry run. Only show discovered tests.)\n"
|
897
897
|
op += "--stop (Stop running tests after the first failure is reached.)\n"
|
898
898
|
op += "-D pdb (Enter the Post Mortem Debug Mode after any test fails.)\n"
|
899
|
-
op += "
|
900
|
-
op += "
|
901
|
-
op += "
|
902
|
-
op += "
|
903
|
-
op += "
|
899
|
+
op += " | Debug Mode Commands >>> help / h: List all commands. |\n"
|
900
|
+
op += " | n: Next line of method. s: Step through. c: Continue. |\n"
|
901
|
+
op += " | return / r: Run until method returns. j: Jump to line. |\n"
|
902
|
+
op += " | where / w: Show stack spot. u: Up stack. d: Down stack. |\n"
|
903
|
+
op += " | longlist / ll: See code. dir(): List namespace objects. |\n"
|
904
904
|
op += "-D recorder (Record browser actions to generate test scripts.)\n"
|
905
905
|
op += "-D rec-print (Display recorded scripts when they are created.)\n"
|
906
906
|
op += "-D save-screenshot (Save a screenshot at the end of each test.)\n"
|
@@ -912,14 +912,14 @@ def show_behave_options():
|
|
912
912
|
op += '-D metrics=STRING (Set mobile "CSSWidth,CSSHeight,PixelRatio".)\n'
|
913
913
|
op += "-D ad-block (Block some types of display ads after page loads.)\n"
|
914
914
|
op += "-D settings-file=FILE (Override default SeleniumBase settings.)\n"
|
915
|
-
op += '-D env=ENV (Set the test env. Access using "self.env" in tests
|
915
|
+
op += '-D env=ENV (Set the test env. Access using "self.env" in tests)\n'
|
916
916
|
op += '-D data=DATA (Extra test data. Access using "self.data".)\n'
|
917
917
|
op += "-D disable-csp (Disable the Content Security Policy of sites.)\n"
|
918
918
|
op += "-D remote-debug (Sync Ch-R-Debugger chrome://inspect/#devices)\n"
|
919
919
|
op += "-D server=SERVER (The Selenium Grid server/IP used for tests.)\n"
|
920
920
|
op += "-D port=PORT (The Selenium Grid port used by the test server.)\n"
|
921
|
-
op += "-D proxy=SERVER:PORT (Connect to a proxy server:port for tests
|
922
|
-
op += "-D proxy=USER:PASS@SERVER:PORT (Use authenticated proxy server
|
921
|
+
op += "-D proxy=SERVER:PORT (Connect to a proxy server:port for tests)\n"
|
922
|
+
op += "-D proxy=USER:PASS@SERVER:PORT (Use authenticated proxy server)\n"
|
923
923
|
op += cr
|
924
924
|
op = op.replace("\n-", "\n" + c1 + "-").replace(" (", cr + " (")
|
925
925
|
op = op.replace(" / -", cr + " / " + c1 + "-")
|
@@ -941,7 +941,7 @@ def show_detailed_help():
|
|
941
941
|
c6 = colorama.Back.CYAN
|
942
942
|
cr = colorama.Style.RESET_ALL
|
943
943
|
show_basic_usage()
|
944
|
-
print(c6 + "
|
944
|
+
print(c6 + " " + c2 + " Commands: " + c6 + " ")
|
945
945
|
print(cr)
|
946
946
|
show_install_usage()
|
947
947
|
show_commander_usage()
|
@@ -966,7 +966,10 @@ def show_detailed_help():
|
|
966
966
|
show_download_usage()
|
967
967
|
show_grid_hub_usage()
|
968
968
|
show_grid_node_usage()
|
969
|
-
print(
|
969
|
+
print(
|
970
|
+
'* (Use "' + c3 + "pytest" + cr + '" or "' + c3 + ''
|
971
|
+
'' + "python" + cr + '" for running tests) *\n'
|
972
|
+
)
|
970
973
|
|
971
974
|
|
972
975
|
def main():
|
@@ -974,7 +977,7 @@ def main():
|
|
974
977
|
command_args = None
|
975
978
|
num_args = len(sys.argv)
|
976
979
|
if num_args == 1:
|
977
|
-
|
980
|
+
show_basic_usage()
|
978
981
|
return
|
979
982
|
elif num_args == 2:
|
980
983
|
command = sys.argv[1]
|
@@ -1202,7 +1205,7 @@ def main():
|
|
1202
1205
|
else:
|
1203
1206
|
show_basic_usage()
|
1204
1207
|
show_grid_node_usage()
|
1205
|
-
elif command == "version" or command == "--version":
|
1208
|
+
elif command == "version" or command == "--version" or command == "-v":
|
1206
1209
|
if len(command_args) == 0:
|
1207
1210
|
from seleniumbase.console_scripts import logo_helper
|
1208
1211
|
|
@@ -1238,7 +1241,7 @@ def main():
|
|
1238
1241
|
"proxy.py", version=constants.ProxyPy.VER
|
1239
1242
|
)
|
1240
1243
|
os.system("proxy %s" % " ".join(sys.argv[2:]))
|
1241
|
-
elif command == "help" or command == "--help":
|
1244
|
+
elif command == "help" or command == "--help" or command == "-h":
|
1242
1245
|
if len(command_args) >= 1:
|
1243
1246
|
if command_args[0] == "get":
|
1244
1247
|
print("")
|
@@ -1362,7 +1365,7 @@ def main():
|
|
1362
1365
|
return
|
1363
1366
|
show_detailed_help()
|
1364
1367
|
else:
|
1365
|
-
|
1368
|
+
show_basic_usage()
|
1366
1369
|
c5 = colorama.Fore.RED + colorama.Back.LIGHTYELLOW_EX
|
1367
1370
|
c7 = colorama.Fore.BLACK + colorama.Back.MAGENTA
|
1368
1371
|
cr = colorama.Style.RESET_ALL
|