2017-02-26 56 views
8

我下載了最新版本的鉻,來測試無頭功能。Chromium/Chrome headless - 文件下載無法正常工作?

當我運行(如根,因爲我還在測試的東西):

./chrome --no-sandbox http://cp7.awardspace.com/speed-test/awardspace-data1mb.zip 

在GUI終端,它打開鉻和下載文件。

如果我試圖運行它無頭,我輸入以下內容:

./chrome --no-sandbox --headless http://cp7.awardspace.com/speed-test/awardspace-data1mb.zip 

終端輸出的一些信息,無窗被打開,也:我沒有任何地方下載的文件。

我一直在探索互聯網和討論組的更多信息,但找不到任何東西。

文件下載不能在Chromium的無頭模式下工作嗎?

回答

0

注:不完全回答這個問題,但解決

我研究了很多關於做無頭鍍鉻下載使用不同的參數/選項的問題/偏好,但沒有任何工作。然後我用使用Apache共享的文件實用程序

FileUtils.copyURLToFile(URI, FILE); 
0
下載文件的標準Java方法

我能與鉻無頭由於文件下載到Chrome遠程接口

public void TryEnableFileDownloading(string downloadPath) 
{ 
    TrySendCommand("Page.setDownloadBehavior", new Dictionary<string, object>() 
    { 
     ["behavior"] = "allow", 
     ["downloadPath"] = downloadPath 
    }); 
} 

的完整代碼與硒的集成還可以發現關於setDownloadBehavior和Chrome Remote接口這裏 https://github.com/cezarypiatek/Tellurium/blob/master/Src/MvcPages/SeleniumUtils/ChromeRemoteInterface/ChromeRemoteInterface.cs

更多信息 https://chromedevtools.github.io/devtools-protocol/tot/Page/#method-setDownloadBehavior

+0

你可以發佈這個工作的java代碼嗎? – Coded9

+0

@ Coded9在過去的8年中,我沒有在java中編寫過任何代碼,所以在設置環境時可能需要很長時間來重寫它。這裏的關鍵是訪問CommandExecutor,它是WebDriver的一個專用字段。我不知道什麼可能性給你java反射方面。如果你能夠訪問私人成員,你應該能夠輕鬆地自己實現這個功能。有關更多詳細信息,請從我的回購中查看WebDriverCommandExecuter類的實現,它允許我通過WebDriver使用ChromeRemoteInterface – cezarypiatek