@@ -133,7 +133,7 @@ def _set_chrome_options(
133133 proxy_string , proxy_auth , proxy_user , proxy_pass ,
134134 user_agent , disable_csp , enable_ws , enable_sync , use_auto_ext ,
135135 no_sandbox , disable_gpu , incognito , guest_mode ,
136- devtools , remote_debug , swiftshader , block_images ,
136+ devtools , remote_debug , swiftshader , block_images , chromium_arg ,
137137 user_data_dir , extension_zip , extension_dir , servername ,
138138 mobile_emulator , device_width , device_height , device_pixel_ratio ):
139139 chrome_options = webdriver .ChromeOptions ()
@@ -298,6 +298,18 @@ def _set_chrome_options(
298298 chrome_options .add_argument ("--disable-gpu" )
299299 if "linux" in PLATFORM :
300300 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 )
301313 return chrome_options
302314
303315
@@ -459,7 +471,7 @@ def get_driver(browser_name, headless=False, locale_code=None,
459471 use_auto_ext = None , no_sandbox = None , disable_gpu = None ,
460472 incognito = None , guest_mode = None ,
461473 devtools = None , remote_debug = None ,
462- swiftshader = None , block_images = None ,
474+ swiftshader = None , block_images = None , chromium_arg = None ,
463475 user_data_dir = None , extension_zip = None , extension_dir = None ,
464476 test_id = None , mobile_emulator = False , device_width = None ,
465477 device_height = None , device_pixel_ratio = None ):
@@ -498,7 +510,7 @@ def get_driver(browser_name, headless=False, locale_code=None,
498510 proxy_string , proxy_auth , proxy_user , proxy_pass , user_agent ,
499511 cap_file , cap_string , disable_csp , enable_ws , enable_sync ,
500512 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 ,
502514 user_data_dir , extension_zip , extension_dir , test_id ,
503515 mobile_emulator , device_width , device_height , device_pixel_ratio )
504516 else :
@@ -507,7 +519,7 @@ def get_driver(browser_name, headless=False, locale_code=None,
507519 proxy_string , proxy_auth , proxy_user , proxy_pass , user_agent ,
508520 disable_csp , enable_ws , enable_sync ,
509521 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 ,
511523 user_data_dir , extension_zip , extension_dir ,
512524 mobile_emulator , device_width , device_height , device_pixel_ratio )
513525
@@ -517,7 +529,7 @@ def get_remote_driver(
517529 proxy_string , proxy_auth , proxy_user , proxy_pass , user_agent ,
518530 cap_file , cap_string , disable_csp , enable_ws , enable_sync ,
519531 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 ,
521533 user_data_dir , extension_zip , extension_dir , test_id ,
522534 mobile_emulator , device_width , device_height , device_pixel_ratio ):
523535 downloads_path = download_helper .get_downloads_folder ()
@@ -549,7 +561,7 @@ def get_remote_driver(
549561 proxy_string , proxy_auth , proxy_user , proxy_pass , user_agent ,
550562 disable_csp , enable_ws , enable_sync , use_auto_ext , no_sandbox ,
551563 disable_gpu , incognito , guest_mode ,
552- devtools , remote_debug , swiftshader , block_images ,
564+ devtools , remote_debug , swiftshader , block_images , chromium_arg ,
553565 user_data_dir , extension_zip , extension_dir ,
554566 servername , mobile_emulator ,
555567 device_width , device_height , device_pixel_ratio )
@@ -677,7 +689,7 @@ def get_local_driver(
677689 proxy_string , proxy_auth , proxy_user , proxy_pass , user_agent ,
678690 disable_csp , enable_ws , enable_sync , use_auto_ext , no_sandbox ,
679691 disable_gpu , incognito , guest_mode ,
680- devtools , remote_debug , swiftshader , block_images ,
692+ devtools , remote_debug , swiftshader , block_images , chromium_arg ,
681693 user_data_dir , extension_zip , extension_dir ,
682694 mobile_emulator , device_width , device_height , device_pixel_ratio ):
683695 '''
@@ -765,8 +777,8 @@ def get_local_driver(
765777 disable_csp , enable_ws , enable_sync , use_auto_ext ,
766778 no_sandbox , disable_gpu , incognito , guest_mode ,
767779 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 ,
770782 device_pixel_ratio )
771783 if LOCAL_EDGEDRIVER and os .path .exists (LOCAL_EDGEDRIVER ):
772784 try :
@@ -910,6 +922,18 @@ def get_local_driver(
910922 edge_options .add_argument ("--disable-gpu" )
911923 if "linux" in PLATFORM :
912924 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 )
913937 capabilities = edge_options .to_capabilities ()
914938 capabilities ["platform" ] = ''
915939 return Edge (
@@ -935,7 +959,7 @@ def get_local_driver(
935959 disable_csp , enable_ws , enable_sync , use_auto_ext ,
936960 no_sandbox , disable_gpu , incognito , guest_mode ,
937961 devtools , remote_debug , swiftshader , block_images ,
938- user_data_dir , extension_zip , extension_dir ,
962+ chromium_arg , user_data_dir , extension_zip , extension_dir ,
939963 servername , mobile_emulator ,
940964 device_width , device_height , device_pixel_ratio )
941965 opera_options .headless = False # No support for headless Opera
@@ -955,7 +979,7 @@ def get_local_driver(
955979 disable_csp , enable_ws , enable_sync , use_auto_ext ,
956980 no_sandbox , disable_gpu , incognito , guest_mode ,
957981 devtools , remote_debug , swiftshader , block_images ,
958- user_data_dir , extension_zip , extension_dir ,
982+ chromium_arg , user_data_dir , extension_zip , extension_dir ,
959983 servername , mobile_emulator ,
960984 device_width , device_height , device_pixel_ratio )
961985 if LOCAL_CHROMEDRIVER and os .path .exists (LOCAL_CHROMEDRIVER ):
0 commit comments