Je télécharge ChromeDriver et par défaut la langue du navigateur est en anglais, je dois le changer en espagnol et je n'ai pas pu.
public WebDriver getDriver(String locale){
System.setProperty("webdriver.chrome.driver", "driver/chromedriver.exe");
return new ChromeDriver();
}
public void initializeSelenium() throws Exception{
driver = getDriver("en-us")
}
Vous pouvez le faire en ajoutant les commutateurs de ligne de commande de Chrome "--lang".
Fondamentalement, il vous suffit de démarrer ChromeDriver
avec un argument ChromeOption--lang=es
, voir API pour plus de détails.
Voici un exemple pratique de code C # pour savoir comment démarrer Chrome en espagnol en utilisant Selenium.
ChromeOptions options = new ChromeOptions();
options.addArguments("--lang=es");
ChromeDriver driver = new ChromeDriver(options);
Le code Java devrait être à peu près le même (non testé). Rappelez-vous que les paramètres régionaux sont ici sous la forme langage [-pays] où langue est le code à 2 lettres d'ISO-639.
public WebDriver getDriver(String locale){
System.setProperty("webdriver.chrome.driver", "driver/chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("--lang=" + locale);
return new ChromeDriver(options);
}
public void initializeSelenium() throws Exception{
driver = getDriver("es"); // two letters to represent the locale, or two letters + country
}
Pour moi, --lang n'a pas fonctionné. Il semble définir la langue du premier onglet ouvert, tous les autres chrome sont démarrés avec --lang = en-US.
Ce qui a fonctionné est le suivant:
DesiredCapabilities jsCapabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<>();
prefs.put("intl.accept_languages", language);
options.setExperimentalOption("prefs", prefs);
jsCapabilities.setCapability(ChromeOptions.CAPABILITY, options);
J'ai eu des problèmes avec Chrome en utilisant le format de date américain (mm/jj/aaaa) au lieu du format GB jj/mm/aaaa (même si je les avais définis dans Chrome). Utilisation:
options.addArguments("--lang=en-GB");
résolu cela.
Pour moi --lang
n'a pas fonctionné non plus. Je voulais effectuer des tests de connexion Facebook avec une langue spécifique (en-US au lieu de en-GB) et ce que j'ai trouvé, c'est que certaines pages (comme Facebook) définissent l'interface en fonction de la variable d'environnement système LANG
... Donc si les réponses ci-dessus ne fonctionnent pas, essayez de changer la variable d'environnement LANG
. Testé sous Linux.
J'essayais la même chose et ci-dessus, rien ne fonctionnait pour moi, enfin j'ai essayé ci-dessous et cela a fonctionné:
ChromeOptions chromeOptions = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("intl.accept_languages", "ja-jp,ja");
chromeOptions.setExperimentalOption("prefs", prefs);
WebDriver driver = new ChromeDriver(chromeOptions);
Pour les personnes utilisant du sélénium avec du rubis:
Je l'ai fait fonctionner de cette façon:
prefs_hash = {
'credentials_enable_service' => false,
'profile' => {
'password_manager_enabled' => false,
},
'intl.accept_languages' => 'fr-FR', // <- here
}
// [...]
browser = Watir::Browser.new :chrome, :prefs => prefs_hash, switches: switches, desired_capabilities: caps