@@ -133,7 +133,7 @@ def _set_chrome_options(
133
133
proxy_string , proxy_auth , proxy_user , proxy_pass ,
134
134
user_agent , disable_csp , enable_ws , enable_sync , use_auto_ext ,
135
135
no_sandbox , disable_gpu , incognito , guest_mode ,
136
- devtools , remote_debug , swiftshader , block_images ,
136
+ devtools , remote_debug , swiftshader , block_images , chromium_arg ,
137
137
user_data_dir , extension_zip , extension_dir , servername ,
138
138
mobile_emulator , device_width , device_height , device_pixel_ratio ):
139
139
chrome_options = webdriver .ChromeOptions ()
@@ -298,6 +298,18 @@ def _set_chrome_options(
298
298
chrome_options .add_argument ("--disable-gpu" )
299
299
if "linux" in PLATFORM :
300
300
chrome_options .add_argument ("--disable-dev-shm-usage" )
301
+ if chromium_arg :
302
+ # Can be a comma-separated list of Chromium args
303
+ chromium_arg_list = chromium_arg .split (',' )
304
+ for chromium_arg_item in chromium_arg_list :
305
+ chromium_arg_item = chromium_arg_item .strip ()
306
+ if not chromium_arg_item .startswith ("--" ):
307
+ if chromium_arg_item .startswith ("-" ):
308
+ chromium_arg_item = "-" + chromium_arg_item
309
+ else :
310
+ chromium_arg_item = "--" + chromium_arg_item
311
+ if len (chromium_arg_item ) >= 3 :
312
+ chrome_options .add_argument (chromium_arg_item )
301
313
return chrome_options
302
314
303
315
@@ -459,7 +471,7 @@ def get_driver(browser_name, headless=False, locale_code=None,
459
471
use_auto_ext = None , no_sandbox = None , disable_gpu = None ,
460
472
incognito = None , guest_mode = None ,
461
473
devtools = None , remote_debug = None ,
462
- swiftshader = None , block_images = None ,
474
+ swiftshader = None , block_images = None , chromium_arg = None ,
463
475
user_data_dir = None , extension_zip = None , extension_dir = None ,
464
476
test_id = None , mobile_emulator = False , device_width = None ,
465
477
device_height = None , device_pixel_ratio = None ):
@@ -498,7 +510,7 @@ def get_driver(browser_name, headless=False, locale_code=None,
498
510
proxy_string , proxy_auth , proxy_user , proxy_pass , user_agent ,
499
511
cap_file , cap_string , disable_csp , enable_ws , enable_sync ,
500
512
use_auto_ext , no_sandbox , disable_gpu , incognito , guest_mode ,
501
- devtools , remote_debug , swiftshader , block_images ,
513
+ devtools , remote_debug , swiftshader , block_images , chromium_arg ,
502
514
user_data_dir , extension_zip , extension_dir , test_id ,
503
515
mobile_emulator , device_width , device_height , device_pixel_ratio )
504
516
else :
@@ -507,7 +519,7 @@ def get_driver(browser_name, headless=False, locale_code=None,
507
519
proxy_string , proxy_auth , proxy_user , proxy_pass , user_agent ,
508
520
disable_csp , enable_ws , enable_sync ,
509
521
use_auto_ext , no_sandbox , disable_gpu , incognito , guest_mode ,
510
- devtools , remote_debug , swiftshader , block_images ,
522
+ devtools , remote_debug , swiftshader , block_images , chromium_arg ,
511
523
user_data_dir , extension_zip , extension_dir ,
512
524
mobile_emulator , device_width , device_height , device_pixel_ratio )
513
525
@@ -517,7 +529,7 @@ def get_remote_driver(
517
529
proxy_string , proxy_auth , proxy_user , proxy_pass , user_agent ,
518
530
cap_file , cap_string , disable_csp , enable_ws , enable_sync ,
519
531
use_auto_ext , no_sandbox , disable_gpu , incognito , guest_mode ,
520
- devtools , remote_debug , swiftshader , block_images ,
532
+ devtools , remote_debug , swiftshader , block_images , chromium_arg ,
521
533
user_data_dir , extension_zip , extension_dir , test_id ,
522
534
mobile_emulator , device_width , device_height , device_pixel_ratio ):
523
535
downloads_path = download_helper .get_downloads_folder ()
@@ -549,7 +561,7 @@ def get_remote_driver(
549
561
proxy_string , proxy_auth , proxy_user , proxy_pass , user_agent ,
550
562
disable_csp , enable_ws , enable_sync , use_auto_ext , no_sandbox ,
551
563
disable_gpu , incognito , guest_mode ,
552
- devtools , remote_debug , swiftshader , block_images ,
564
+ devtools , remote_debug , swiftshader , block_images , chromium_arg ,
553
565
user_data_dir , extension_zip , extension_dir ,
554
566
servername , mobile_emulator ,
555
567
device_width , device_height , device_pixel_ratio )
@@ -677,7 +689,7 @@ def get_local_driver(
677
689
proxy_string , proxy_auth , proxy_user , proxy_pass , user_agent ,
678
690
disable_csp , enable_ws , enable_sync , use_auto_ext , no_sandbox ,
679
691
disable_gpu , incognito , guest_mode ,
680
- devtools , remote_debug , swiftshader , block_images ,
692
+ devtools , remote_debug , swiftshader , block_images , chromium_arg ,
681
693
user_data_dir , extension_zip , extension_dir ,
682
694
mobile_emulator , device_width , device_height , device_pixel_ratio ):
683
695
'''
@@ -765,8 +777,8 @@ def get_local_driver(
765
777
disable_csp , enable_ws , enable_sync , use_auto_ext ,
766
778
no_sandbox , disable_gpu , incognito , guest_mode ,
767
779
devtools , remote_debug , swiftshader , block_images ,
768
- user_data_dir , extension_zip , extension_dir , servername ,
769
- mobile_emulator , device_width , device_height ,
780
+ chromium_arg , user_data_dir , extension_zip , extension_dir ,
781
+ servername , mobile_emulator , device_width , device_height ,
770
782
device_pixel_ratio )
771
783
if LOCAL_EDGEDRIVER and os .path .exists (LOCAL_EDGEDRIVER ):
772
784
try :
@@ -910,6 +922,18 @@ def get_local_driver(
910
922
edge_options .add_argument ("--disable-gpu" )
911
923
if "linux" in PLATFORM :
912
924
edge_options .add_argument ("--disable-dev-shm-usage" )
925
+ if chromium_arg :
926
+ # Can be a comma-separated list of Chromium args
927
+ chromium_arg_list = chromium_arg .split (',' )
928
+ for chromium_arg_item in chromium_arg_list :
929
+ chromium_arg_item = chromium_arg_item .strip ()
930
+ if not chromium_arg_item .startswith ("--" ):
931
+ if chromium_arg_item .startswith ("-" ):
932
+ chromium_arg_item = "-" + chromium_arg_item
933
+ else :
934
+ chromium_arg_item = "--" + chromium_arg_item
935
+ if len (chromium_arg_item ) >= 3 :
936
+ edge_options .add_argument (chromium_arg_item )
913
937
capabilities = edge_options .to_capabilities ()
914
938
capabilities ["platform" ] = ''
915
939
return Edge (
@@ -935,7 +959,7 @@ def get_local_driver(
935
959
disable_csp , enable_ws , enable_sync , use_auto_ext ,
936
960
no_sandbox , disable_gpu , incognito , guest_mode ,
937
961
devtools , remote_debug , swiftshader , block_images ,
938
- user_data_dir , extension_zip , extension_dir ,
962
+ chromium_arg , user_data_dir , extension_zip , extension_dir ,
939
963
servername , mobile_emulator ,
940
964
device_width , device_height , device_pixel_ratio )
941
965
opera_options .headless = False # No support for headless Opera
@@ -955,7 +979,7 @@ def get_local_driver(
955
979
disable_csp , enable_ws , enable_sync , use_auto_ext ,
956
980
no_sandbox , disable_gpu , incognito , guest_mode ,
957
981
devtools , remote_debug , swiftshader , block_images ,
958
- user_data_dir , extension_zip , extension_dir ,
982
+ chromium_arg , user_data_dir , extension_zip , extension_dir ,
959
983
servername , mobile_emulator ,
960
984
device_width , device_height , device_pixel_ratio )
961
985
if LOCAL_CHROMEDRIVER and os .path .exists (LOCAL_CHROMEDRIVER ):
0 commit comments