Voici ce que j'utilise, l'agent utilisateur peut être défini avec succès, alors que les préférences de téléchargement ne peuvent pas.
Windows 7, Chrome 26, selenium-dotnet-2.31.2, chromedriver_win_26.0.1383.0
ChromeOptions chromeOptions = new ChromeOptions();
var prefs = new Dictionary<string, object> {
{ "download.default_directory", @"C:\code" },
{ "download.Prompt_for_download", false }
};
chromeOptions.AddAdditionalCapability("chrome.prefs", prefs);
chromeOptions.AddArgument("--user-agent=" + "some safari agent");
var driver = new ChromeDriver(chromeOptions);
Pris de chromedriver.log:
[1.201][FINE]: Initializing session with capabilities {
"browserName": "chrome",
"chrome.prefs": {
"download.default_directory": "C:\\code",
"download.Prompt_for_download": false
},
"chrome.switches": [ "--user-agent=Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version..." ],
"chromeOptions": {
"args": [ "--user-agent=Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version..." ],
"binary": "",
"extensions": [ ]
},
"javascriptEnabled": true,
"platform": "WINDOWS",
"version": ""
}
Vérifiez le fichier de préférences TEMP à *temp\Google\Chrome\User Data\Default\Preferences
, non "default_directory"
et "Prompt_for_download"
sont définis.
"download": {
"directory_upgrade": true
},
Si vous avez mis à jour Chrome version 36.0.x et selenium 2.42, la solution Martins ne fonctionne plus.
Il semble avoir été mis à jour. Vous pouvez maintenant utiliser le code suivant
ChromeOptions options = new ChromeOptions();
options.AddUserProfilePreference(string preferenceName, object preferenceValue);
Je l'utilise actuellement pour modifier mes paramètres d'imprimante sur "Enregistrer sous PDF" au lieu de la valeur par défaut à l'aide de ce code comme exemple.
ChromeOptions options = new ChromeOptions();
options.AddUserProfilePreference("printing.print_preview_sticky_settings.appState", "{\"version\":2,\"isGcpPromoDismissed\":false,\"selectedDestinationId\":\"Save as PDF\");
Je pensais que la solution de Martin était très bonne et précise, mais elle a soudainement cessé de travailler pour moi, alors naturellement, je devais voir si je pouvais trouver une solution.