Skip to content

Commit 6af03b6

Browse files
committed
Improve command-line control for SB() and Driver() formats
1 parent 5c8a94b commit 6af03b6

File tree

2 files changed

+116
-54
lines changed

2 files changed

+116
-54
lines changed

seleniumbase/plugins/driver_manager.py

Lines changed: 58 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -303,28 +303,44 @@ def Driver(
303303
proxy_string = proxy_string[1:-1]
304304
c_a = chromium_arg
305305
if c_a is None and "--chromium-arg" in arg_join:
306-
if "--chromium-arg=" in arg_join:
307-
c_a = arg_join.split("--chromium-arg=")[1].split(" ")[0]
308-
elif "--chromium-arg " in arg_join:
309-
c_a = arg_join.split("--chromium-arg ")[1].split(" ")[0]
310-
if c_a:
311-
if c_a.startswith('"') and c_a.endswith('"'):
312-
c_a = c_a[1:-1]
313-
elif c_a.startswith("'") and c_a.endswith("'"):
314-
c_a = c_a[1:-1]
306+
count = 0
307+
for arg in sys_argv:
308+
if arg.startswith("--chromium-arg="):
309+
c_a = arg.split("--chromium-arg=")[1]
310+
break
311+
elif arg == "--chromium-arg" and len(sys_argv) > count + 1:
312+
c_a = sys_argv[count + 1]
313+
if c_a.startswith("-"):
314+
c_a = None
315+
break
316+
count += 1
315317
chromium_arg = c_a
316318
d_f = disable_features
317319
if d_f is None and "--disable-features" in arg_join:
318-
if "--disable-features=" in arg_join:
319-
d_f = arg_join.split("--disable-features=")[1].split(" ")[0]
320-
elif "--disable-features " in arg_join:
321-
d_f = arg_join.split("--disable-features ")[1].split(" ")[0]
322-
if d_f:
323-
if d_f.startswith('"') and d_f.endswith('"'):
324-
d_f = d_f[1:-1]
325-
elif c_a.startswith("'") and d_f.endswith("'"):
326-
d_f = d_f[1:-1]
320+
count = 0
321+
for arg in sys_argv:
322+
if arg.startswith("--disable-features="):
323+
d_f = arg.split("--disable-features=")[1]
324+
break
325+
elif arg == "--disable-features" and len(sys_argv) > count + 1:
326+
d_f = sys_argv[count + 1]
327+
if d_f.startswith("-"):
328+
d_f = None
329+
break
330+
count += 1
327331
disable_features = d_f
332+
if agent is None and "--agent" in arg_join:
333+
count = 0
334+
for arg in sys_argv:
335+
if arg.startswith("--agent="):
336+
agent = arg.split("--agent=")[1]
337+
break
338+
elif arg == "--agent" and len(sys_argv) > count + 1:
339+
agent = sys_argv[count + 1]
340+
if agent.startswith("-"):
341+
agent = None
342+
break
343+
count += 1
328344
user_agent = agent
329345
recorder_mode = False
330346
if recorder_ext:
@@ -535,15 +551,30 @@ def Driver(
535551
host_resolver_rules = (
536552
arg_join.split("--host_resolver_rules=")[1].split('"')[0]
537553
)
538-
if driver_version is None:
539-
if "--driver-version=" in arg_join:
540-
driver_version = (
541-
arg_join.split("--driver-version=")[1].split(" ")[0]
542-
)
543-
elif "--driver_version=" in arg_join:
544-
driver_version = (
545-
arg_join.split("--driver_version=")[1].split(" ")[0]
546-
)
554+
if driver_version is None and "--driver-version" in arg_join:
555+
count = 0
556+
for arg in sys_argv:
557+
if arg.startswith("--driver-version="):
558+
driver_version = arg.split("--driver-version=")[1]
559+
break
560+
elif arg == "--driver-version" and len(sys_argv) > count + 1:
561+
driver_version = sys_argv[count + 1]
562+
if driver_version.startswith("-"):
563+
driver_version = None
564+
break
565+
count += 1
566+
if driver_version is None and "--driver_version" in arg_join:
567+
count = 0
568+
for arg in sys_argv:
569+
if arg.startswith("--driver_version="):
570+
driver_version = arg.split("--driver_version=")[1]
571+
break
572+
elif arg == "--driver_version" and len(sys_argv) > count + 1:
573+
driver_version = sys_argv[count + 1]
574+
if driver_version.startswith("-"):
575+
driver_version = None
576+
break
577+
count += 1
547578
browser_name = browser
548579

549580
# Launch a web browser

seleniumbase/plugins/sb_manager.py

Lines changed: 58 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -337,28 +337,44 @@ def SB(
337337
proxy_string = proxy_string[1:-1]
338338
c_a = chromium_arg
339339
if c_a is None and "--chromium-arg" in arg_join:
340-
if "--chromium-arg=" in arg_join:
341-
c_a = arg_join.split("--chromium-arg=")[1].split(" ")[0]
342-
elif "--chromium-arg " in arg_join:
343-
c_a = arg_join.split("--chromium-arg ")[1].split(" ")[0]
344-
if c_a:
345-
if c_a.startswith('"') and c_a.endswith('"'):
346-
c_a = c_a[1:-1]
347-
elif c_a.startswith("'") and c_a.endswith("'"):
348-
c_a = c_a[1:-1]
340+
count = 0
341+
for arg in sys_argv:
342+
if arg.startswith("--chromium-arg="):
343+
c_a = arg.split("--chromium-arg=")[1]
344+
break
345+
elif arg == "--chromium-arg" and len(sys_argv) > count + 1:
346+
c_a = sys_argv[count + 1]
347+
if c_a.startswith("-"):
348+
c_a = None
349+
break
350+
count += 1
349351
chromium_arg = c_a
350352
d_f = disable_features
351353
if d_f is None and "--disable-features" in arg_join:
352-
if "--disable-features=" in arg_join:
353-
d_f = arg_join.split("--disable-features=")[1].split(" ")[0]
354-
elif "--disable-features " in arg_join:
355-
d_f = arg_join.split("--disable-features ")[1].split(" ")[0]
356-
if d_f:
357-
if d_f.startswith('"') and d_f.endswith('"'):
358-
d_f = d_f[1:-1]
359-
elif c_a.startswith("'") and d_f.endswith("'"):
360-
d_f = d_f[1:-1]
354+
count = 0
355+
for arg in sys_argv:
356+
if arg.startswith("--disable-features="):
357+
d_f = arg.split("--disable-features=")[1]
358+
break
359+
elif arg == "--disable-features" and len(sys_argv) > count + 1:
360+
d_f = sys_argv[count + 1]
361+
if d_f.startswith("-"):
362+
d_f = None
363+
break
364+
count += 1
361365
disable_features = d_f
366+
if agent is None and "--agent" in arg_join:
367+
count = 0
368+
for arg in sys_argv:
369+
if arg.startswith("--agent="):
370+
agent = arg.split("--agent=")[1]
371+
break
372+
elif arg == "--agent" and len(sys_argv) > count + 1:
373+
agent = sys_argv[count + 1]
374+
if agent.startswith("-"):
375+
agent = None
376+
break
377+
count += 1
362378
user_agent = agent
363379
recorder_mode = False
364380
if recorder_ext:
@@ -679,15 +695,30 @@ def SB(
679695
host_resolver_rules = (
680696
arg_join.split("--host_resolver_rules=")[1].split('"')[0]
681697
)
682-
if driver_version is None:
683-
if "--driver-version=" in arg_join:
684-
driver_version = (
685-
arg_join.split("--driver-version=")[1].split(" ")[0]
686-
)
687-
elif "--driver_version=" in arg_join:
688-
driver_version = (
689-
arg_join.split("--driver_version=")[1].split(" ")[0]
690-
)
698+
if driver_version is None and "--driver-version" in arg_join:
699+
count = 0
700+
for arg in sys_argv:
701+
if arg.startswith("--driver-version="):
702+
driver_version = arg.split("--driver-version=")[1]
703+
break
704+
elif arg == "--driver-version" and len(sys_argv) > count + 1:
705+
driver_version = sys_argv[count + 1]
706+
if driver_version.startswith("-"):
707+
driver_version = None
708+
break
709+
count += 1
710+
if driver_version is None and "--driver_version" in arg_join:
711+
count = 0
712+
for arg in sys_argv:
713+
if arg.startswith("--driver_version="):
714+
driver_version = arg.split("--driver_version=")[1]
715+
break
716+
elif arg == "--driver_version" and len(sys_argv) > count + 1:
717+
driver_version = sys_argv[count + 1]
718+
if driver_version.startswith("-"):
719+
driver_version = None
720+
break
721+
count += 1
691722
if highlights is not None:
692723
try:
693724
highlights = int(highlights)

0 commit comments

Comments
 (0)