【问题标题】:Can't start chrome driver via selenium in headless mode无法在无头模式下通过 selenium 启动 chrome 驱动程序
【发布时间】:2016-11-10 20:32:55
【问题描述】:

我有一个问题。我有一个应该在不是 GUI 的 linux 服务器上运行的应用程序,我想无头运行它。在我的本地机器上一切正常,但在服务器上我有问题,我不知道为什么,昨天它工作但目前我收到此错误:

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)

在启动应用程序之前我运行这些命令:

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

但是现在不行了,请大神帮忙看看应该是哪里出了问题?

这是我运行网络驱动程序的方式:

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

【问题讨论】:

  • 看看here。检查您是否正在为 linux 做先决条件。我在上一份工作中得到了这个工作,因为 PhantomJS 对于开发想要使用的某些 JavaScript 的行为不正确。

标签: google-chrome selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

首先,您需要使用xvfb-run 命令启动 selenium 服务器。先在终端执行下面的命令,然后开始执行脚本。

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

【讨论】:

  • 您好,谢谢!我为我的应用程序运行这些命令 1) xvfb-run java -jar selenium-server-standalone-3.0.1.jar & 2) Xvfb :40 & 3) export DISPLAY=:40 4) java -jar myapp.jar & And现在一切都恢复正常了!
【解决方案2】:

我发现当我以这种方式运行我的应用程序时不需要 selenium 驱动程序:

xvfb-run -a java -jar my_jar.jar

有效!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-10
    • 2020-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    相关资源
    最近更新 更多