2014-09-08 4 views
0

Я использую комбинацию:WebDriverJS с PhantomJS работает на OSX, но не на Linux

Каждый компонент работает отлично, и когда я запускаю:

var client = webdriverjs.remote({ 
    desiredCapabilities: { 
     browserName: 'phantomjs', 
     'phantomjs.binary.path': '/path-to/node_modules/phantomjs/bin/phantomjs' 
    }, 
    logLevel: 'silent' 
}); 

client.init(); 

Он отлично работает на OSX/Mac, но на нашем сервере CI Linux (Ubuntu) появляется следующее сообщение об ошибке;

PhantomJS is launching GhostDriver... 
Unable to open file '/path/to/phantomjsdriver.log' 

Перед ineveitable Java StackTrace ...

Driver info: driver.version: unknown 
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) 
    at java.util.concurrent.FutureTask.get(FutureTask.java:83) 
    at org.openqa.selenium.remote.server.DefaultSession.execute(DefaultSession.java:176) 
    at org.openqa.selenium.remote.server.DefaultSession.<init>(DefaultSession.java:112) 
    at org.openqa.selenium.remote.server.DefaultSession.createSession(DefaultSession.java:89) 
    at org.openqa.selenium.remote.server.DefaultDriverSessions.newSession(DefaultDriverSessions.java:110) 
    at org.openqa.selenium.remote.server.handler.NewSession.handle(NewSession.java:57) 
    at org.openqa.selenium.remote.server.handler.NewSession.handle(NewSession.java:1) 
    at org.openqa.selenium.remote.server.rest.ResultConfig.handle(ResultConfig.java:112) 
    at org.openqa.selenium.remote.server.JsonHttpCommandHandler.handleRequest(JsonHttpCommandHandler.java:173) 
    at org.openqa.selenium.remote.server.DriverServlet.handleRequest(DriverServlet.java:200) 
    at org.openqa.selenium.remote.server.DriverServlet.doPost(DriverServlet.java:162) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
    at org.openqa.selenium.remote.server.DriverServlet.service(DriverServlet.java:128) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
    at org.openqa.jetty.jetty.servlet.ServletHolder.handle(ServletHolder.java:428) 
    at org.openqa.jetty.jetty.servlet.ServletHandler.dispatch(ServletHandler.java:680) 
    at org.openqa.jetty.jetty.servlet.ServletHandler.handle(ServletHandler.java:571) 
    at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1526) 
    at org.openqa.jetty.http.HttpContext.handle(HttpContext.java:1479) 
    at org.openqa.jetty.http.HttpServer.service(HttpServer.java:920) 
    at org.openqa.jetty.http.HttpConnection.service(HttpConnection.java:820) 
    at org.openqa.jetty.http.HttpConnection.handleNext(HttpConnection.java:986) 
    at org.openqa.jetty.http.HttpConnection.handle(HttpConnection.java:837) 
    at org.openqa.jetty.http.SocketListener.handleConnection(SocketListener.java:243) 
    at org.openqa.jetty.util.ThreadedServer.handle(ThreadedServer.java:358) 
    at org.openqa.jetty.util.ThreadPool$PoolThread.run(ThreadPool.java:537) 
Caused by: org.openqa.selenium.WebDriverException: java.lang.reflect.InvocationTargetException 

&

Driver info: driver.version: PhantomJSDriver 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:590) 
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:241) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:127) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:140) 
    at org.openqa.selenium.phantomjs.PhantomJSDriver.<init>(PhantomJSDriver.java:110) 
    at org.openqa.selenium.phantomjs.PhantomJSDriver.<init>(PhantomJSDriver.java:99) 
    ... 14 more 
Caused by: org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start. 

Я подозреваю разрешения вопроса, но интересуется, если кто столкнулся с этой проблемой раньше. По крайней мере, было бы здорово разобраться, почему это работает на Mac.

ответ

2

Этот файл - phantomjsdriver.log - может быть создан только пользователем с разрешениями на запись файла. Выполнение программы как «root» устраняет проблему.

Смежные вопросы