Skip to content

Commit bf732fd

Browse files
committed
Add "--url=URL" option for "sbase mkfile FILE.py"
1 parent 473f329 commit bf732fd

File tree

3 files changed

+42
-26
lines changed

3 files changed

+42
-26
lines changed

seleniumbase/console_scripts/ReadMe.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -349,8 +349,9 @@ sbase mkfile new_test.py
349349
350350
* Options:
351351
352-
``-b`` / ``--basic`` (Basic boilerplate / single-line test)
353-
``-r`` / ``--rec`` (adds Pdb+ breakpoint for Recorder Mode)
352+
`-b` / `--basic` (Basic boilerplate / single-line test)
353+
`-r` / `--rec` (adds Pdb+ breakpoint for Recorder Mode)
354+
``--url=URL`` (makes the test start on a specific page)
354355
355356
* Language Options:
356357
@@ -362,12 +363,12 @@ sbase mkfile new_test.py
362363
363364
* Syntax Formats:
364365
365-
``--bc`` / ``--basecase`` (BaseCase class inheritance)
366-
``--pf`` / ``--pytest-fixture`` (sb pytest fixture)
366+
``--bc`` / ``--basecase`` (BaseCase class inheritance)
367+
``--pf`` / ``--pytest-fixture`` (sb pytest fixture)
367368
``--cf`` / ``--class-fixture`` (class + sb pytest fixture)
368-
``--cm`` / ``--context-manager`` (SB context manager)
369-
``--dc`` / ``--driver-context`` (DriverContext manager)
370-
``--dm`` / ``--driver-manager`` (Driver manager)
369+
``--cm`` / ``--context-manager`` (SB context manager)
370+
``--dc`` / ``--driver-context`` (DriverContext manager)
371+
``--dm`` / ``--driver-manager`` (Driver manager)
371372
372373
* Output:
373374

seleniumbase/console_scripts/run.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -258,19 +258,20 @@ def show_mkfile_usage():
258258
print(" Options:")
259259
print(" -b / --basic (Basic boilerplate / single-line test)")
260260
print(" -r / --rec (adds Pdb+ breakpoint for Recorder Mode)")
261+
print(" --url=URL (makes the test start on a specific page)")
261262
print(" Language Options:")
262263
print(" --en / --English | --zh / --Chinese")
263264
print(" --nl / --Dutch | --fr / --French")
264265
print(" --it / --Italian | --ja / --Japanese")
265266
print(" --ko / --Korean | --pt / --Portuguese")
266267
print(" --ru / --Russian | --es / --Spanish")
267268
print(" Syntax Formats:")
268-
print(" --bc / --basecase (BaseCase class inheritance)")
269-
print(" --pf / --pytest-fixture (sb pytest fixture)")
270-
print(" --cf / --class-fixture (class + sb pytest fixture)")
271-
print(" --cm / --context-manager (SB context manager)")
272-
print(" --dc / --driver-context (DriverContext manager)")
273-
print(" --dm / --driver-manager (Driver manager)")
269+
print(" --bc / --basecase (BaseCase class inheritance)")
270+
print(" --pf / --pytest-fixture (sb pytest fixture)")
271+
print(" --cf / --class-fixture (class + sb pytest fixture)")
272+
print(" --cm / --context-manager (SB context manager)")
273+
print(" --dc / --driver-context (DriverContext manager)")
274+
print(" --dm / --driver-manager (Driver manager)")
274275
print(" Output:")
275276
print(" Creates a new SBase test file with boilerplate code.")
276277
print(" If the file already exists, an error is raised.")

seleniumbase/console_scripts/sb_mkfile.py

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
Options:
1212
-b / --basic (Basic boilerplate / single-line test)
1313
-r / --rec (adds Pdb+ breakpoint for Recorder Mode)
14+
--url=URL (makes the test start on a specific page)
1415
1516
Language Options:
1617
--en / --English | --zh / --Chinese
@@ -20,12 +21,12 @@
2021
--ru / --Russian | --es / --Spanish
2122
2223
Syntax Formats:
23-
--bc / --basecase (BaseCase class inheritance)
24-
--pf / --pytest-fixture (sb pytest fixture)
25-
--cf / --class-fixture (class + sb pytest fixture)
26-
--cm / --context-manager (SB context manager)
27-
--dc / --driver-context (DriverContext manager)
28-
--dm / --driver-manager (Driver manager)
24+
--bc / --basecase (BaseCase class inheritance)
25+
--pf / --pytest-fixture (sb pytest fixture)
26+
--cf / --class-fixture (class + sb pytest fixture)
27+
--cm / --context-manager (SB context manager)
28+
--dc / --driver-context (DriverContext manager)
29+
--dm / --driver-manager (Driver manager)
2930
3031
Output:
3132
Creates a new SBase test file with boilerplate code.
@@ -53,19 +54,20 @@ def invalid_run_command(msg=None):
5354
exp += " Options:\n"
5455
exp += " -b / --basic (Basic boilerplate / single-line test)\n"
5556
exp += " -r / --rec (adds Pdb+ breakpoint for Recorder Mode)\n"
57+
exp += " --url=URL (makes the test start on a specific page)\n"
5658
exp += " Language Options:\n"
5759
exp += " --en / --English | --zh / --Chinese\n"
5860
exp += " --nl / --Dutch | --fr / --French\n"
5961
exp += " --it / --Italian | --ja / --Japanese\n"
6062
exp += " --ko / --Korean | --pt / --Portuguese\n"
6163
exp += " --ru / --Russian | --es / --Spanish\n"
6264
exp += " Syntax Formats:\n"
63-
exp += " --bc / --basecase (BaseCase class inheritance)\n"
64-
exp += " --pf / --pytest-fixture (sb pytest fixture)\n"
65-
exp += " --cf / --class-fixture (class + sb pytest fixture)\n"
66-
exp += " --cm / --context-manager (SB context manager)\n"
67-
exp += " --dc / --driver-context (DriverContext manager)\n"
68-
exp += " --dm / --driver-manager (Driver manager)\n"
65+
exp += " --bc / --basecase (BaseCase class inheritance)\n"
66+
exp += " --pf / --pytest-fixture (sb pytest fixture)\n"
67+
exp += " --cf / --class-fixture (class + sb pytest fixture)\n"
68+
exp += " --cm / --context-manager (SB context manager)\n"
69+
exp += " --dc / --driver-context (DriverContext manager)\n"
70+
exp += " --dm / --driver-manager (Driver manager)\n"
6971
exp += " Output:\n"
7072
exp += " Creates a new SBase test file with boilerplate code.\n"
7173
exp += " If the file already exists, an error is raised.\n"
@@ -100,6 +102,7 @@ def main():
100102
help_me = False
101103
recorder = False
102104
error_msg = None
105+
start_page = None
103106
invalid_cmd = None
104107
syntax = "BaseCase"
105108
language = "English"
@@ -128,6 +131,15 @@ def main():
128131
option = option.lower()
129132
if option == "-h" or option == "--help":
130133
help_me = True
134+
elif option.startswith("--url=") and len(option) > 6:
135+
from seleniumbase.fixtures import page_utils
136+
start_page = option.split("--url=")[1]
137+
if not page_utils.is_valid_url(start_page):
138+
if page_utils.is_valid_url("https://" + start_page):
139+
start_page = "https://" + start_page
140+
else:
141+
raise Exception("Invalid URL: %s" % start_page)
142+
basic = True
131143
elif option == "-b" or option == "--basic":
132144
basic = True
133145
elif option == "-r" or option == "--rec":
@@ -223,7 +235,9 @@ def main():
223235
goodbye = "Adiós"
224236
class_name = "MiClaseDePrueba"
225237
url = ""
226-
if basic:
238+
if start_page:
239+
url = start_page
240+
elif basic:
227241
url = "about:blank"
228242
elif language not in ["English", "Dutch", "French", "Italian"]:
229243
url = "data:text/html,<meta charset='utf-8'><p>%s<br><input>" % hello

0 commit comments

Comments
 (0)