2016-07-29 11 views
2

Ich möchte mit ein paar Tasten Selenium drücken, um eine Datei für meinen Testprozess herunterzuladen. Diese Webseite verwendet Javascript, so dass es unmöglich ist, etwas wie HttpState in Verbindung mit dem Http-Client zu verwenden. Ich habe festgestellt, dass PhantomJs diese Funktion nicht unterstützt (Esspessialy unter Linux). Ich benutze den folgenden Code mit Firefox, aber es ist nicht kopflos.Gibt es einen Headless-Browser, der von Selenium unterstützt wird und die Download-Funktion aktiviert ist?

FirefoxProfile fprofile = new FirefoxProfile(); 
    String path; 
    if (SystemUtils.IS_OS_LINUX) { 
     path = "/tmp/hon/"; 
    } else { 
     path = "c:\\Downloads\\hon\\"; 
    } 
    fprofile.setPreference("browser.download.dir", path); 
    fprofile.setPreference("browser.download.folderList", 2); 
    fprofile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/zip");    fprofile.setPreference("browser.download.manager.showWhenStarting", false); 
    fprofile.setPreference("pdfjs.disabled", true); 
    mDriver = new FirefoxDriver(fprofile); 

Gibt es eine Lösung, um eine Konstruktion wie diese mit einigen Headless Browser zu verwenden?

Antwort

0

Sie können versuchen XVFB X11-Display-Server. Es funktioniert im Headless-Modus wie eine echte Anzeige, Sie können Screenshots und andere Dinge machen.

+0

Ich könnte diesen Weg aus wenigen Gründen nicht verwenden. Zumindest brauche ich diese Lösung Crossplatform. Ich suche Headless Browser, nicht Display Server. –