Pourquoi ne puis-je pas télécharger un fichier via Firefox à l’aide de Selenium Webdriver?

J’essaie de télécharger le fichier dans firefox en utilisant le paramètre de profil, mais cela ne fonctionne pas, pouvez-vous me dire ce que je fais mal et le code que j’utilise est affiché en dessous de cette ligne

var profile = new FirefoxProfile { EnableNativeEvents = true }; profile.SetPreference("browser.download.folderList", 2); profile.SetPreference("browser.download.manager.showWhenStarting", false); profile.SetPreference("browser.download.dir", folderName); profile.SetPreference("browser.download.downloadDir", folderName); profile.SetPreference("browser.download.defaultFolder", folderName); profile.SetPreference("browser.helperApps.neverAsk.saveToDisk", "image/jpeg,application/vnd.oasis.opendocument.text,application/vnd.oasis.opendocument.spreadsheet," + "application/vnd.oasis.opendocument.presentation,application/vnd.oasis.opendocument.graphics," + "application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet," + "application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation," + "application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.mozilla.xul+xml," + "application/vnd.google-earth.kml+xml"); 

Après avoir passé des jours à essayer et à lire beaucoup de possibilités, celle-ci a fonctionné pour moi, alors je la partage avec vous et j’espère que cela pourra être utile: je viens de définir le profil WebDriver firefox de cette façon:

 firefoxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream doc xls pdf txt"); 

Cette solution m’a permis d’éviter l’affichage de la fenêtre contextuelle du téléchargement firefox, et de télécharger automatiquement les fichiers XLS à l’aide de selenium webdriver.

Selenium crée un nouveau profil firefox pour chaque exécution. Vous devrez créer un profil firefox pour le selenium et le faire utiliser par votre script de selenium. Si vous définissez le téléchargement automatique sur ce profil, cela devrait fonctionner correctement!

voir ici http://girliemangalo.wordpress.com/2009/02/05/creating-firefox-profile-for-your-selenium-rc-tests/

Je n’ai fait cela que pour Java, mais j’imagine que la méthode serait similaire.

edit Le code Java pour spécifier le profil est:

 ProfilesIni profile = new ProfilesIni(); FirefoxProfile ffprofile = profile.getProfile("SELENIUM"); WebDriver driver = new FirefoxDriver(ffprofile); 

La source:

Quel profil Selenium WebDriver utilise-t-il par défaut?