2015-12-29 12 views
9

Vui lòng tìm mã bên dưới có khả năng chrome. Trên thực tế, trình duyệt không tải tệp xuống đường dẫn được chỉ định.Làm cách nào để đặt thư mục tải xuống mặc định trong các Khả năng của Chrome?

private static DesiredCapabilities getChromeCapabilities() throws Exception { 

    String chromePath = BrowserUtil.class.getResource("/Browserdrivers/chromedriver.exe").getPath(); 
    System.setProperty("webdriver.chrome.driver", chromePath); 
    String downloadFilepath = "C:\\TestDownloads"; 
    ChromeOptions options = new ChromeOptions(); 
    HashMap<String, Object> chromePrefs = new HashMap<String, Object>(); 
    chromePrefs.put("profile.default_content_settings.popups", 0); 
    chromePrefs.put("download.default_directory", downloadFilepath); 
    options.setExperimentalOption("prefs", chromePrefs); 
    options.addArguments("--test-type"); 
    options.addArguments("start-maximized", "disable-popup-blocking"); 

    DesiredCapabilities chromeCapabilities = DesiredCapabilities.chrome(); 
    setProxy(chromeCapabilities); 
    chromeCapabilities.setPlatform(Platform.WINDOWS); 
    chromeCapabilities.setCapability("name", MDC.get("testname")); 
    chromeCapabilities.setCapability(ChromeOptions.CAPABILITY, options); 
    return chromeCapabilities; 
} 

Trả lời

17

Đối Chromedriver thử với:

String downloadFilepath = "/path/to/download"; 
HashMap<String, Object> chromePrefs = new HashMap<String, Object>(); 
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); 
WebDriver driver = new ChromeDriver(cap); 

Lưu ý: - Trong cửa sổ bạn cần phải sử dụng \\ cho con đường trong khi nếu bạn đang sử dụng Linux hay mac sau đó sử dụng //

Hope điều này có ích. :)

+2

Hoặc bạn sẽ chỉ sử dụng File.separator thay cho dấu gạch chéo –

+0

Hoàn toàn đúng .. nhờ để chia sẻ –

+0

gì nếu tôi cần phải thay đổi con đường tải trong thời gian chạy? Tôi có nghĩa là thiết lập con đường riêng của mình cho mỗi bài kiểm tra. – Orest

2

Ans giúp tôi giải quyết vấn đề này trên cửa sổ (https://bugs.chromium.org/p/chromedriver/issues/detail?id=783).

Map<String, Object> prefs = new HashMap<String, Object>(); 
prefs.put("download.default_directory", System.getProperty("user.dir")+ File.separator + "externalFiles" + File.separator + "downloadFiles"); 
ChromeOptions options = new ChromeOptions(); 
options.setExperimentalOption("prefs", prefs); 
ChromeDriver driver = new ChromeDriver(options); 
Các vấn đề liên quan