2013-11-01 3 views
3

시스템 테스트를 위해 셀렌을 사용하고 있습니다. 텍스트 파일을 다운로드해야합니다. 직접 다운로드하려면 Firefox 프로필을 만들어야합니다. Save/cancel 대화 상자를 피해야합니다 ... 대화 상자가 계속 표시됩니다. 대화 상자가 여전히 열려 왜 찾을 수셀레늄을 사용하여 파일 다운로드

FirefoxProfile fxProfile = new FirefoxProfile(); 
fxProfile.setPreference("browser.download.folderList",2); 
fxProfile.setPreference("browser.download.manager.showWhenStarting",false); 
fxProfile.setPreference("browser.download.dir","c:\\tmp"); 
fxProfile.setPreference("browser.helperApps.alwaysAsk.force", false); 
fxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk","text/plain"); 
driver.findElement(By.id("link-download")).click(); 

다음과 같이

내 코드입니다. 아이디어가 있으십니까?

미리 감사드립니다.

+0

를 다운로드 작성합니다. 아니면 그런 식으로? 아마 파이어 폭스에 비해 나이가 들까? – Coffee

+0

브라우저가 열렸습니까? – sircapsalot

+3

나는 당신이 설정하고있는 마지막 환경 설정을 추측하고 있습니다. 'text/plain'이 다운로드의 MIME 유형입니까? –

답변

5

알겠습니다. 파라미터없이 드라이버를 작성

FirefoxProfile fxProfile = new FirefoxProfile(); 

    fxProfile.setPreference("browser.download.folderList", 2); 
    fxProfile.setPreference("browser.download.manager.showWhenStarting", false); 
    fxProfile.setPreference("browser.download.dir","c:\\tmp"); 
    fxProfile.setPreference("browser.helperApps.alwaysAsk.force", false); 
    fxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream"); 

    setDriver(TestBench.createDriver(new FirefoxDriver(fxProfile))); 

I를 WASS :

파이어 폭스 프로파일은 다음과 같이 드라이버를 작성할 때 매개 변수로 전달되어야한다. 이제는 효과가 있습니다.

+0

이 게시물 확인 http://qaautomationworld.blogspot.in/2014/02/file-downlaoding-using-selenium.html – Sravan

3

제 경우에는 다른 기본 설정이 필요하므로 Javascript Enabled를 사용하는 것도 흥미 롭습니다.

File downloadDir = new File(DOWNLOAD_PATH); 
FirefoxProfile fProfile = new FirefoxProfile(); 
fProfile.setAcceptUntrustedCertificates(true); 
fProfile.setPreference("browser.download.dir", downloadDir.getAbsolutePath()); 
fProfile.setPreference("browser.download.folderList", 2); 
fProfile.setPreference("browser.download.manager.showWhenStarting", false); 
fProfile.setPreference("browser.helperApps.alwaysAsk.force", false); 
fProfile.setPreference("browser.helperApps.neverAsk.saveToDisk", "text/plain"); 
DesiredCapabilities dc = DesiredCapabilities.firefox(); 
dc.setJavascriptEnabled(true); 
dc.setCapability(FirefoxDriver.PROFILE, fProfile); 
driver = new FirefoxDriver(dc); 
-1

당신은 모든 파일을 다운로드 할 수 있습니다

내가 자바

에서 로봇을 사용하여 솔루션을 가지고 :

나는 또한 내 응용 프로그램에서 같은 문제에 직면 (예 : .XLS, .CSV, .pdf)을

코드 다음 내가이 브라우저 버전에 따라 달라질 수 있습니다 궁금 모든 파일

    Thread.sleep(1000L); 
        //create robot object 
        Robot robot = new Robot(); 
        Thread.sleep(1000L); 
        //Click Down Arrow Key to select "Save File" Radio Button 
        robot.keyPress(KeyEvent.VK_DOWN); 
        Thread.sleep(1000L); 
        // Click 3 times Tab to take focus on "OK" Button 
        robot.keyPress(KeyEvent.VK_TAB); 
        Thread.sleep(1000L); 
        robot.keyPress(KeyEvent.VK_TAB); 
        Thread.sleep(1000L); 
        robot.keyPress(KeyEvent.VK_TAB); 
        Thread.sleep(1000L); 
        //Click "Enter" Button to download file 
        robot.keyPress(KeyEvent.VK_ENTER); 
        Thread.sleep(5000L); 
        System.out.println("Robot work Complete");