83 votes

L'accès à de dialogue téléchargement de fichier dans Firefox

Est ce qu'il y a des API qui peuvent me permettre de manipuler un dialogue téléchargement de fichier dans Firefox? (Je veux accéder à celui qui s'affiche lorsque l'utilisateur fait quelque chose, de ne pas initier un moi-même).

Ce que je veux faire est d'accéder à cette boîte de dialogue à partir de Sélénium (et si le Sélénium "mode privilégié" est suffisant pour accéder à google chrome interface est quelque chose que je ne suis pas sûr à ce sujet).

72voto

dlopezgonzalez Points 890

J'ai une solution pour ce problème, vérifiez le code:

    FirefoxProfile firefoxProfile = new FirefoxProfile();

    firefoxProfile.setPreference("browser.download.folderList",2);
    firefoxProfile.setPreference("browser.download.manager.showWhenStarting",false);
    firefoxProfile.setPreference("browser.download.dir","c:\\downloads");
    firefoxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk","text/csv");

    WebDriver driver = new FirefoxDriver(firefoxProfile);//new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability);

    driver.navigate().to("http://www.myfile.com/hey.csv");

44voto

Akendo Points 471

J'ai été coincé avec le même problème, mais j'ai trouvé une solution. J'ai fait de la même manière que ce blog ne.

Bien sûr, ce fut Java, je l'ai traduit pour Python:

fp = webdriver.FirefoxProfile()

fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir",getcwd())
fp.set_preference("browser.helperApps.neverAsk.saveToDisk","text/csv")

browser = webdriver.Firefox(firefox_profile=fp)

Dans mon exemple, c'était un fichier CSV. Mais quand vous avez besoin de plus, il sont stockés dans l' ~/.mozilla/$USER_PROFILE/mimeTypes.rdf

33voto

Aaron Digulla Points 143830

Pas que je sache. Mais vous pouvez configurer Firefox pour lancer automatiquement le téléchargement et enregistrez le fichier dans un endroit précis. Votre test peut alors vérifier que le fichier est effectivement arrivé.

3voto

Nifle Points 6754

Ne sais pas, mais vous pourriez peut-être vérifier la source de l'un des téléchargement de Firefox addons.

Ici est la source de celui que j'utilise le Téléchargement Satusbar.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X