0

Ich habe ein Problem. Ich habe eine Anwendung, die auf dem Linux-Server laufen sollte, wo es keine GUI ist, ich möchte es kopflos ausführen. Auf meinem lokalen Maschine alles funktioniert gut, aber auf dem Server habe ich ein Problem, und ich weiß nicht, warum, gestern gearbeitet, aber zur Zeit diesen Fehler Ich erhalte:Kann nicht über Selen im Headless-Modus chrome-Treiber starten

org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally 
    (Driver info: chromedriver=2.25.426924 (649f9b868f6783ec9de71c123212b908bf3b232e),platform=Linux 4.4.0-47-generic x86_64) (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 60.07 seconds 
Build info: version: 'unknown', revision: 'unknown', time: 'unknown' 
System info: host: 'vps334949', ip: '92.222.74.219', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-47-generic', java.version: '1.8.0_111' 
Driver info: org.openqa.selenium.chrome.ChromeDriver 
    at sun.reflect.GeneratedConstructorAccessor54.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206) 
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158) 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678) 
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:249) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:144) 
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:170) 
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:159) 
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:116) 

Vordergrund Startanwendung ausgeführt wird ich diese Befehle :

Xvfb :40 & 
Xvfb :40 -screen 0 1024x768x24 -extension RANDR & 
export DISPLAY=:40 

Aber es ist jetzt nicht working, könnten Sie bitte somene Hilfe wo sollte das Problem sein? Diese

ist, wie ich Web-Treiber laufen:

System.setProperty("webdriver.chrome.driver", "/home/chrome/chromedriver"); 
     WebDriver driver = new ChromeDriver(); 
     driver.manage().timeouts().pageLoadTimeout(TIMEOUT, TimeUnit.MINUTES); 
+0

Werfen Sie einen Blick [hier] (https://gist.github.com/addyosmani/5336747). Stellen Sie sicher, dass Sie die Voraussetzungen für Linux erfüllen. Ich habe das in meinem letzten Job funktioniert, weil PhantomJS sich nicht richtig verhalten hat für einige JavaScript, die die Entwicklung benutzen wollte. – MikeJRamsey56

Antwort

3

Zuerst müssen Sie die Selen-Server mit xvfb-run Befehl starten. Führen Sie den folgenden Befehl zuerst im Terminal aus und starten Sie dann die Ausführung der Skripte.

xvfb-run java -jar selenium-server-standalone-2.53.jar 
+0

Hallo Danke !! Ich führe diese Befehle für meine App 1) xvfb-run java -jar selen-server-standalone-3.0.1.jar & 2) Xvfb: 40 & 3) exportieren DISPLAY =: 40 4) java-jar myapp .jar & Und jetzt funktioniert alles wieder !! – user1604064

1

Ich fand, dass Selen-Treiber nicht erforderlich ist, wenn ich meine app wie auf diese Weise laufen:

xvfb-run -a java -jar my_jar.jar 

es funktioniert!