2015-10-22 103 views
0

我嘗試使用Java中的Selenium WebDriver從Firefox自動下載。 不幸的是,我發現了很多答案,但這是在我的代碼中不能正常工作。Selenium WebDriver - 在Firefox上自動下載

我試圖

profile.setPreference("browser.download.folderList", 2); 
profile.setPreference("browser.download.manager.showWhenStarting", false); 
profile.setPreference("browser.download.dir", "D:\\"); 
profile.setPreference("browser.helperApps.neverAsk.openFile","application/msword, application/csv, application/ris, text/csv, image/png, application/pdf, text/html, text/plain, application/zip, application/x-zip, application/x-zip-compressed, application/download, application/octet-stream"); 
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/msword, application/csv, application/ris, text/csv, image/png, application/pdf, text/html, text/plain, application/zip, application/x-zip, application/x-zip-compressed, application/download, application/octet-stream"); 

,但無法工作! 我嘗試下載的文件的類型是CSV Excel文件。

在Mozilla> Options> Application中,儘管我添加了setPreference,但任何自動化都是可見的。

之前只是,我只是說

profile.setPreference("network.proxy.type", 1); 
profile.setPreference("network.proxy.http", "XXX.XXX.XXX.XXX"); 
profile.setPreference("network.proxy.http_port", XXXX); 

因爲我有我的公司代理,但這次在Mozilla>選項> Internet設置,代理規則我加入是可見的。

回答

0

我不久以前有同樣的問題,從你的代碼,我看到兩種可能性:

  1. 的MIME類型不在名單:

檢查this site,如果你想爲一個列表每個應用程序,也許你應該包括Excel文件的MIME類型。例如:

application/excel 
application/vnd.ms-excel 
  • 禁用完全browser.helperApps選項:
  • 下列選項添加到您的Firefox配置文件,它會確保您禁用下載對話。

    profile.set_preference('browser.helperApps.alwaysAsk.force', False) 
    
    0

    謝謝你很多關於你的答案,我看到了我並不孤單這個問題,但它似乎經常爲人們的工作... 我試圖添加你的代碼,但沒有什麼區別。

    也許這可能是問題來自計算機設置?

    它繼續出現彈出: Download Popup Firefox

    應該出現這(當然)申請規則:csv automated donwload

    順便說一句,在應用程序選項中的任何規則,出現與著名profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/msword, application/csv, application/ris, text/csv, image/png, application/pdf, text/html, text/plain, application/zip, application/x-zip, application/x-zip-compressed, application/download, application/octet-stream, application/excel, application/vnd.ms-excel"); 我不知道是否應該。

    我得到的最後一個想法是手動創建一個配置文件,並在啓動Firefox瀏覽器時獲取它,但我真的不知道它是否可能,知道應用程序即使必須在連接到VPN的任何計算機上工作。

    再次感謝您的幫助,如果有人認爲有解決方案,那將非常棒!

    0

    在這種情況下不具有不同的方式, 創建Firfox輪廓通過進入運行命令

    firefox.exe -P 
    

    它會問你要創建新的配置文件,並啓動配置文件(參見https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles),manualy嘗試下載文件,在彈出窗口來了只是檢查自動下載,

    然後在你的硒代碼添加配置文件

    <profile_name> = webdriver.FirefoxProfile() 
    driver = webdriver.Firefox(<profile_name>) 
    driver.get("http://google.com") 
    

    嘗試運行代碼,現在它會自動下載沒有任何彈出窗口的內容。

    相關問題