2013-04-11 3 views
0

다른 주제의 Stackoverflow에서 찾은 코드를 사용하여 PDF 파일을 다운로드해야하는 작업에 대해 사용자에게 묻지 않습니다.PDF 파일 다운로드를위한 사용자 브라우저 기본 설정

FirefoxProfile specialProfile = new FirefoxProfile(); 
specialProfile.SetPreference("browser.helperApps.alwaysAsk.force", false); 
specialProfile.SetPreference("browser.download.manager.showWhenStarting", false); 
specialProfile.SetPreference("browser.download.folderList", 2); 
specialProfile.SetPreference("browser.download.dir", Setup.DownloadContractPath);    
specialProfile.SetPreference("services.sync.prefs.sync.browser.download.manager.showWhenStarting", false); 
specialProfile.SetPreference("browser.download.useDownloadDir", true); 

specialProfile.SetPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf"); 

return new FirefoxDriver(specialProfile); 

하지만 내 경우에는 작동하지 않는 것 같습니다 : 내가 사용

코드입니다. PDF 그리고 난 다음 화면 얻었다 이상 내가 코드를 사용하고 있더라도 :

enter image description here

사람이 내가 잘못 할 수 있습니다 알고 있나요을 나는 다운로드 해요 파일 유형입니까?

+0

당신이 창에서 작업하는 경우 대체 솔루션이 SendKeys 매크로를 사용하는 것입니다, 왜 확인 버튼 –

+0

GAH 있습니다 클릭하기 위해 탭 탭 충돌 : 여기

더 자세한 기사입니다 당신은 어쨌든 무언가를 다운로드하고 있습니까? 당신은 실제로 그것으로 무엇인가하고 있습니까? – Ardesco

+0

안녕하세요, 실제로 파일을 다운로드 완료시 시작된 응용 프로그램에 다른 프로세스가있었습니다. 그것이 내가 그것을 얻을 필요가 있었던 이유 다. – ravenik

답변

2

어떤 Firefox 및 Selenium 버전을 사용하고 있습니까?

Firefox 20.0을 사용하고 있습니다. 기본 동작은 다운로드하는 대신 pdf 파일을 미리보기로하므로 specialProfile.SetPreference("pdfjs.disabled", true);을 추가해야합니다.

그 외에도 코드가 저에게 적합합니다. (참고 Directory.GetCurrentDirectory() 대신 Setup.DownloadContractPath 사용). sample.pdf으로 시도해보고 설정이 실제로 Firefox에 열려있는 webdriver의 about : config 페이지에 있는지 확인하십시오. Download PDF files automatically in Firefox using Selenium WebDriver

FirefoxProfile specialProfile = new FirefoxProfile(); 
specialProfile.SetPreference("browser.helperApps.alwaysAsk.force", false); 
specialProfile.SetPreference("browser.download.manager.showWhenStarting", false); 
specialProfile.SetPreference("browser.download.folderList", 2); 
specialProfile.SetPreference("browser.download.dir", Directory.GetCurrentDirectory()); // my downloading dir 
specialProfile.SetPreference("services.sync.prefs.sync.browser.download.manager.showWhenStarting", false); 
specialProfile.SetPreference("browser.download.useDownloadDir", true); 
specialProfile.SetPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf"); 

specialProfile.SetPreference("pdfjs.disabled", true); // for my Firefox 20.0 
return new FirefoxDriver(specialProfile); 
+0

와우! 큰! 작동 :) :) 감사합니다 – ravenik

+0

다행입니다. 그렇다면 코드가 작동하지 않는 이유를 알고 있습니까? –

+0

안녕하세요, 누락 된 부분은 : specialProfile.SetPreference ("pdfjs.disabled", true); 그러나 나는 아직도이 부분이 무엇을하고 있는지 모른다. 그리고 아이디어? – ravenik

관련 문제