Mám problém. Mám aplikáciu, ktorá by mala bežať na linux server, kde nie je GUI chcem spustiť bezhlavý. Na mojom lokálnom počítači všetko funguje dobre, ale na serveri mám problém a ja neviem prečo, včera to fungovalo, ale v súčasnosti som túto chybu nedostal:
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)
Pred spustením aplikácie spustím tieto príkazy:
Xvfb :40 &
Xvfb :40 -screen 0 1024x768x24 -extension RANDR &
export DISPLAY=:40
Ale teraz nie je horšie, mohli by ste mi prosím pomôcť somene, kde by mal byť problém?
Takto spustím webový ovládač:
System.setProperty("webdriver.chrome.driver", "/home/chrome/chromedriver");
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().pageLoadTimeout(TIMEOUT, TimeUnit.MINUTES);
odpovede:
3 pre odpoveď č. 1Najprv musíte spustiť server selenium pomocou xvfb-run
Príkaz. Najprv vykonajte nasledujúci príkaz v termináli a potom spustite vykonávanie skriptov.
xvfb-run java -jar selenium-server-standalone-2.53.jar
1 pre odpoveď č. 2
Zistil som, že ovládač selénu nie je potrebný, keď túto aplikáciu spustím takto:
xvfb-run -a java -jar my_jar.jar
funguje to!