2016-06-08 9 views
0

Wenn Sie auf einen Link klicken, der einen Fenster-Browser öffnet, um ein Dokument zu speichern, wie wird es so eingestellt, dass kein Fenster angezeigt wird und der Browser an einem bestimmten Ort gespeichert werden kann?Wenn Sie auf einen Link klicken, wird ein Fenster-Browser geöffnet, in dem Sie ein Dokument speichern und festlegen können, wo es kein Pop-Up gibt und an einem bestimmten Speicherort gespeichert werden kann.

Ich würde dies für Chrome Browser, IE und Mozilla benötigen.

Dies ist, was ich für Chrome versucht:

String downloadFilepath = System.getProperty("user.dir")+"\\PDF Files\\"; 
     HashMap<String, Object> chromePrefs = new HashMap<String, Object>(); 
     chromePrefs.put("plugins.plugins_disabled", new String[] {"Adobe Flash Player", "Chrome PDF Viewer"});      
chromePrefs.put("profile.default_content_settings.popups", 0); 
    chromePrefs.put("download.default_directory", downloadFilepath); 
          ChromeOptions options = new ChromeOptions(); 
          options.setExperimentalOption("prefs", chromePrefs); 
          DesiredCapabilities cap = DesiredCapabilities.chrome(); 
          cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); 
          cap.setCapability(ChromeOptions.CAPABILITY, options); 
          GlobalVars.driver = new ChromeDriver(cap); 

Aber es tut zu sein scheinen zu arbeiten. Es öffnet sich weiterhin der Windows-Browser und fragt nach dem Ort.

Antwort

0

Obwohl ich es nicht über Chrome-Treiber senden konnte, behandelte ich es über ROBOT API. Hier ist der Code, den ich geschrieben habe, nachdem der Browser erscheint:

String Projectpath=System.getProperty("user.dir"); 
     System.out.println(Projectpath); 

     StringSelection ss= new StringSelection(Projectpath+"\\PDFFiles\\"); 
     Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null); 
     try{ 
      Thread.sleep(3000); 

      //Perform native keystrokes for Ctrl+V and ENTER Keys 
      Robot robot = new Robot(); 

      /*robot.keyPress(KeyEvent.VK_ENTER); 
      robot.keyRelease(KeyEvent.VK_ENTER);*/ 
      robot.keyPress(KeyEvent.VK_CONTROL); 
      robot.keyPress(KeyEvent.VK_V); 
      robot.keyRelease(KeyEvent.VK_V); 
      robot.keyRelease(KeyEvent.VK_CONTROL); 
      robot.keyPress(KeyEvent.VK_ENTER); 
      robot.keyRelease(KeyEvent.VK_ENTER); 

      Thread.sleep(2000); 
      robot.keyPress(KeyEvent.VK_ENTER); 
      robot.keyRelease(KeyEvent.VK_ENTER);