2017-02-26 2 views
8

Ich habe die neueste Version von Chrom heruntergeladen, um die Headless-Funktion zu testen.Chromium/Chrome kopflos - Dateidownload funktioniert nicht?

Wenn ich laufen (als root, weil ich testen Dinge noch):

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

In der GUI-Terminal, öffnet es Chromium und lädt die Datei.

Wenn ich versuche es ohne Kopf zu laufen, ich folgendes eingeben:

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

Das Terminal gibt einige Informationen, wird kein Fenster geöffnet, aber auch: Ich habe nicht die Datei irgendwo heruntergeladen.

Ich habe das Internet und Diskussionsgruppen für weitere Informationen gesucht, kann aber nichts finden.

Funktioniert das Herunterladen von Dateien im Headless-Modus für Chromium nicht?

Antwort

0

Hinweis: Nicht exakt auf die Frage zu beantworten, aber löst das Problem

I mit unterschiedlichen Parametern/Optionen eine Menge auf Herstellung ohne Kopf Chrom Download recherchieren/Voreinstellungen, aber nichts hat funktioniert. Dann habe ich Standard-Java-Weg-Datei herunterzuladen Apache Commons des FileUtils mit

FileUtils.copyURLToFile(URI, FILE); 
0

konnte ich Dateien mit Chrom ohne Kopf dank Chrome Remote-Schnittstelle für Integration

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

Voll Code zum Download mit Selen gefunden werden konnte hier https://github.com/cezarypiatek/Tellurium/blob/master/Src/MvcPages/SeleniumUtils/ChromeRemoteInterface/ChromeRemoteInterface.cs

Mehr Infos über setDownloadBehavior und Chrome Remote Interface https://chromedevtools.github.io/devtools-protocol/tot/Page/#method-setDownloadBehavior

+0

Können Sie den Arbeits-Java-Code dafür bereitstellen? – Coded9

+0

@ Coded9 Ich habe in den letzten 8 Jahren keinen Code in Java geschrieben, daher werde ich wahrscheinlich viel Zeit brauchen, um es neu zu schreiben und die Umgebung einzurichten. Der Hauptpunkt hier ist, auf CommandExecutor zuzugreifen, der ein privates Feld von WebDriver ist. Ich habe keine Ahnung, welche Möglichkeiten dir Java im Sinne von Reflektion gibt. Wenn Sie auf private Mitglieder zugreifen können, sollten Sie in der Lage sein, diese Funktionalität einfach selbst zu implementieren. Für weitere Details überprüfen Sie die Implementierung der WebDriverCommandExecuter-Klasse von meinem Repo, die mir erlaubt, ChromeRemoteInterface über WebDriver zu verwenden – cezarypiatek

Verwandte Themen