2016-03-30 7 views
7

Voglio verificare il download del file utilizzando il web driver e il Java Selenium. Il file da scaricare è in formato pdf. Quando WebDriver scatta sopra 'Scarica' anello della AUT, firefox aprire la finestra di conferma seguente downloadImposta il profilo di Firefox per scaricare i file automaticamente utilizzando Selenium e Java

Download Confirmation Window

voglio firefox per scaricare il file automaticamente, senza mostrare sopra finestra di conferma, quindi ho usato il codice qui sotto

FirefoxProfile firefoxProfile=new FirefoxProfile(); 
firefoxProfile.setPreference("browser.download.folderList",2); 
firefoxProfile.setPreference("browser.download.manager.showWhenStarting",false); 
firefoxProfile.setPreference("browser.download.dir",downloadPath); 
firefoxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk","application/pdf"); 
WebDriver driver=new FirefoxDriver(firefoxProfile); 

ma ancora Firefox mostra la stessa finestra. Come posso impostare il profilo firefox in modo che i file PDF vengano scaricati automaticamente senza mostrare il dialogo di conferma?

+2

Qual è il mime-type ' 'della risposta? Provalo: 'firefoxProfile.setPreference (" browser.helperApps.neverAsk.saveToDisk "," application/pdf, application/x-pdf, application/octet-stream ");' – JRodDynamite

risposta

16

Proprio come suggerito da @Jason, è probabilmente un altro tipo di mimo. per ottenere il tipo MIME:

  • Aperte Strumenti di sviluppo
  • Vai alla Rete
  • Cliccare sul link per scaricare il pdf
  • Nel pannello di rete, selezionare la prima richiesta
  • Il mimo tipo è il Content-Type dalla intestazione della risposta:

enter image description here

Poi per scaricare un PDF con Firefox:

FirefoxOptions options = new FirefoxOptions(); 
options.setPreference("browser.download.folderList", 2); 
options.setPreference("browser.download.dir", "C:\\Windows\\temp"); 
options.setPreference("browser.download.useDownloadDir", true); 
options.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf"); 
options.setPreference("pdfjs.disabled", true); // disable the built-in PDF viewer 

WebDriver driver = new FirefoxDriver(options); 
driver.get("https://www.mozilla.org/en-US/foundation/documents"); 
driver.findElement(By.linkText("IRS Form 872-C")).click(); 
+0

Il tipo mime è application/pdf. Riesco a vedere un messaggio nella console della scheda sviluppatore 'Risorsa interpretata come documento ma trasferita con applicazione tipo MIME/pdf'. Questo messaggio ha qualche relazione con il problema @Jason – stackoverflow

+0

Puoi fornire un link PDF pubblico che riproduca il tuo problema. Puoi facilmente ottenerne uno cercando "pdf filetype: pdf" in Google. –

+0

Puoi controllare qualsiasi file pdf nel link [https://www.ibm.com/developerworks/community/files/app#/] – stackoverflow

1

Il modo in cui attualmente lavora in Firefox 57.0b13 è

FirefoxProfile profile = new FirefoxProfile(); 
// profile.setPreference("browser.download.useDownloadDir", true); This is true by default. Add it if it's not working without it. 

profile.setPreference("browser.download.folderList",2); //Use for the default download directory the last folder specified for a download 
profile.setPreference("browser.download.dir", "/Path/to/directory"); //Set the last directory used for saving a file from the "What should (browser) do with this file?" dialog. 
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf"); //list of MIME types to save to disk without asking what to use to open the file 
profile.setPreference("pdfjs.disabled", true); // disable the built-in PDF viewer 

firefoxOptions.setProfile(profile); 

informazioni dettagliate su ciascun Firefox profile setting

Problemi correlati