@@ -129,7 +129,7 @@ def _add_chrome_disable_csp_extension(chrome_options):
129
129
130
130
131
131
def _set_chrome_options (
132
- browser_name , downloads_path , headless ,
132
+ browser_name , downloads_path , headless , locale_code ,
133
133
proxy_string , proxy_auth , proxy_user , proxy_pass ,
134
134
user_agent , disable_csp , enable_sync , use_auto_ext ,
135
135
no_sandbox , disable_gpu , incognito , guest_mode , devtools , swiftshader ,
@@ -140,10 +140,16 @@ def _set_chrome_options(
140
140
"download.default_directory" : downloads_path ,
141
141
"local_discovery.notifications_enabled" : False ,
142
142
"credentials_enable_service" : False ,
143
+ "download.prompt_for_download" : False ,
144
+ "download.directory_upgrade" : True ,
145
+ "safebrowsing.enabled" : False ,
146
+ "safebrowsing.disable_download_protection" : True ,
143
147
"profile" : {
144
148
"password_manager_enabled" : False
145
149
}
146
150
}
151
+ if locale_code :
152
+ prefs ["intl.accept_languages" ] = locale_code
147
153
if block_images :
148
154
prefs ["profile.managed_default_content_settings.images" ] = 2
149
155
chrome_options .add_experimental_option ("prefs" , prefs )
@@ -283,7 +289,7 @@ def _set_safari_capabilities():
283
289
284
290
285
291
def _create_firefox_profile (
286
- downloads_path , proxy_string , user_agent , disable_csp ):
292
+ downloads_path , locale_code , proxy_string , user_agent , disable_csp ):
287
293
profile = webdriver .FirefoxProfile ()
288
294
profile .accept_untrusted_certs = True
289
295
profile .set_preference ("reader.parse-on-load.enabled" , False )
@@ -328,6 +334,8 @@ def _create_firefox_profile(
328
334
profile .set_preference ("security.csp.enable" , False )
329
335
profile .set_preference (
330
336
"browser.download.manager.showAlertOnComplete" , False )
337
+ if locale_code :
338
+ profile .set_preference ("intl.accept_languages" , locale_code )
331
339
profile .set_preference ("browser.shell.checkDefaultBrowser" , False )
332
340
profile .set_preference ("browser.startup.page" , 0 )
333
341
profile .set_preference ("browser.download.panel.shown" , False )
@@ -389,9 +397,10 @@ def validate_proxy_string(proxy_string):
389
397
return proxy_string
390
398
391
399
392
- def get_driver (browser_name , headless = False , use_grid = False ,
393
- servername = 'localhost' , port = 4444 , proxy_string = None ,
394
- user_agent = None , cap_file = None , cap_string = None ,
400
+ def get_driver (browser_name , headless = False , locale_code = None ,
401
+ use_grid = False , servername = 'localhost' , port = 4444 ,
402
+ proxy_string = None , user_agent = None ,
403
+ cap_file = None , cap_string = None ,
395
404
disable_csp = None , enable_sync = None , use_auto_ext = None ,
396
405
no_sandbox = None , disable_gpu = None ,
397
406
incognito = None , guest_mode = None , devtools = None ,
@@ -430,7 +439,7 @@ def get_driver(browser_name, headless=False, use_grid=False,
430
439
"Name length of Chrome's User Data Directory must be >= 3." )
431
440
if use_grid :
432
441
return get_remote_driver (
433
- browser_name , headless , servername , port ,
442
+ browser_name , headless , locale_code , servername , port ,
434
443
proxy_string , proxy_auth , proxy_user , proxy_pass , user_agent ,
435
444
cap_file , cap_string , disable_csp , enable_sync , use_auto_ext ,
436
445
no_sandbox , disable_gpu , incognito , guest_mode , devtools ,
@@ -439,7 +448,7 @@ def get_driver(browser_name, headless=False, use_grid=False,
439
448
mobile_emulator , device_width , device_height , device_pixel_ratio )
440
449
else :
441
450
return get_local_driver (
442
- browser_name , headless , servername ,
451
+ browser_name , headless , locale_code , servername ,
443
452
proxy_string , proxy_auth , proxy_user , proxy_pass , user_agent ,
444
453
disable_csp , enable_sync , use_auto_ext , no_sandbox , disable_gpu ,
445
454
incognito , guest_mode , devtools , swiftshader , block_images ,
@@ -448,10 +457,11 @@ def get_driver(browser_name, headless=False, use_grid=False,
448
457
449
458
450
459
def get_remote_driver (
451
- browser_name , headless , servername , port , proxy_string , proxy_auth ,
452
- proxy_user , proxy_pass , user_agent , cap_file , cap_string ,
453
- disable_csp , enable_sync , use_auto_ext , no_sandbox , disable_gpu ,
454
- incognito , guest_mode , devtools , swiftshader , block_images ,
460
+ browser_name , headless , locale_code , servername , port ,
461
+ proxy_string , proxy_auth , proxy_user , proxy_pass , user_agent ,
462
+ cap_file , cap_string , disable_csp , enable_sync , use_auto_ext ,
463
+ no_sandbox , disable_gpu , incognito , guest_mode ,
464
+ devtools , swiftshader , block_images ,
455
465
user_data_dir , extension_zip , extension_dir , test_id ,
456
466
mobile_emulator , device_width , device_height , device_pixel_ratio ):
457
467
downloads_path = download_helper .get_downloads_folder ()
@@ -480,7 +490,7 @@ def get_remote_driver(
480
490
desired_caps ["name" ] = test_id
481
491
if browser_name == constants .Browser .GOOGLE_CHROME :
482
492
chrome_options = _set_chrome_options (
483
- browser_name , downloads_path , headless ,
493
+ browser_name , downloads_path , headless , locale_code ,
484
494
proxy_string , proxy_auth , proxy_user , proxy_pass , user_agent ,
485
495
disable_csp , enable_sync , use_auto_ext , no_sandbox , disable_gpu ,
486
496
incognito , guest_mode , devtools , swiftshader , block_images ,
@@ -497,7 +507,8 @@ def get_remote_driver(
497
507
try :
498
508
# Use Geckodriver for Firefox if it's on the PATH
499
509
profile = _create_firefox_profile (
500
- downloads_path , proxy_string , user_agent , disable_csp )
510
+ downloads_path , locale_code ,
511
+ proxy_string , user_agent , disable_csp )
501
512
firefox_capabilities = DesiredCapabilities .FIREFOX .copy ()
502
513
firefox_capabilities ['marionette' ] = True
503
514
if headless :
@@ -515,7 +526,8 @@ def get_remote_driver(
515
526
except WebDriverException :
516
527
# Don't use Geckodriver: Only works for old versions of Firefox
517
528
profile = _create_firefox_profile (
518
- downloads_path , proxy_string , user_agent , disable_csp )
529
+ downloads_path , locale_code ,
530
+ proxy_string , user_agent , disable_csp )
519
531
firefox_capabilities = DesiredCapabilities .FIREFOX .copy ()
520
532
firefox_capabilities ['marionette' ] = False
521
533
if headless :
@@ -604,7 +616,7 @@ def get_remote_driver(
604
616
605
617
606
618
def get_local_driver (
607
- browser_name , headless , servername ,
619
+ browser_name , headless , locale_code , servername ,
608
620
proxy_string , proxy_auth , proxy_user , proxy_pass , user_agent ,
609
621
disable_csp , enable_sync , use_auto_ext , no_sandbox , disable_gpu ,
610
622
incognito , guest_mode , devtools , swiftshader , block_images ,
@@ -622,7 +634,8 @@ def get_local_driver(
622
634
try :
623
635
# Use Geckodriver for Firefox if it's on the PATH
624
636
profile = _create_firefox_profile (
625
- downloads_path , proxy_string , user_agent , disable_csp )
637
+ downloads_path , locale_code ,
638
+ proxy_string , user_agent , disable_csp )
626
639
firefox_capabilities = DesiredCapabilities .FIREFOX .copy ()
627
640
firefox_capabilities ['marionette' ] = True
628
641
options = webdriver .FirefoxOptions ()
@@ -661,7 +674,8 @@ def get_local_driver(
661
674
options = options )
662
675
except Exception :
663
676
profile = _create_firefox_profile (
664
- downloads_path , proxy_string , user_agent , disable_csp )
677
+ downloads_path , locale_code ,
678
+ proxy_string , user_agent , disable_csp )
665
679
firefox_capabilities = DesiredCapabilities .FIREFOX .copy ()
666
680
firefox_driver = webdriver .Firefox (
667
681
firefox_profile = profile ,
@@ -694,7 +708,7 @@ def get_local_driver(
694
708
elif browser_name == constants .Browser .EDGE :
695
709
try :
696
710
chrome_options = _set_chrome_options (
697
- browser_name , downloads_path , headless ,
711
+ browser_name , downloads_path , headless , locale_code ,
698
712
proxy_string , proxy_auth , proxy_user , proxy_pass , user_agent ,
699
713
disable_csp , enable_sync , use_auto_ext ,
700
714
no_sandbox , disable_gpu , incognito , guest_mode , devtools ,
@@ -735,10 +749,16 @@ def get_local_driver(
735
749
"download.default_directory" : downloads_path ,
736
750
"local_discovery.notifications_enabled" : False ,
737
751
"credentials_enable_service" : False ,
752
+ "download.prompt_for_download" : False ,
753
+ "download.directory_upgrade" : True ,
754
+ "safebrowsing.enabled" : False ,
755
+ "safebrowsing.disable_download_protection" : True ,
738
756
"profile" : {
739
757
"password_manager_enabled" : False
740
758
}
741
759
}
760
+ if locale_code :
761
+ prefs ["intl.accept_languages" ] = locale_code
742
762
if block_images :
743
763
prefs ["profile.managed_default_content_settings.images" ] = 2
744
764
edge_options .add_experimental_option ("prefs" , prefs )
@@ -820,7 +840,7 @@ def get_local_driver(
820
840
logging .debug ("\n Warning: Could not make operadriver"
821
841
" executable: %s" % e )
822
842
opera_options = _set_chrome_options (
823
- browser_name , downloads_path , headless ,
843
+ browser_name , downloads_path , headless , locale_code ,
824
844
proxy_string , proxy_auth , proxy_user , proxy_pass , user_agent ,
825
845
disable_csp , enable_sync , use_auto_ext ,
826
846
no_sandbox , disable_gpu , incognito , guest_mode , devtools ,
@@ -839,7 +859,7 @@ def get_local_driver(
839
859
elif browser_name == constants .Browser .GOOGLE_CHROME :
840
860
try :
841
861
chrome_options = _set_chrome_options (
842
- browser_name , downloads_path , headless ,
862
+ browser_name , downloads_path , headless , locale_code ,
843
863
proxy_string , proxy_auth , proxy_user , proxy_pass , user_agent ,
844
864
disable_csp , enable_sync , use_auto_ext ,
845
865
no_sandbox , disable_gpu , incognito , guest_mode , devtools ,
0 commit comments