2017-08-15 162 views
-1

雖然試圖在Angular Application上運行Protractor e2e測試,但是我的WebDriver Manager卻拋出了NullPointerException異常。WebDriver Manager在嘗試運行Protractor e2e測試時拋出java NullPointerException

這個問題是不是關於NullPointerException的一個問題。這是一個關於如何獲得量角器和端到端測試工作的問題。

我比較了我的設置與同事,比較環境變量,鉻版本等,他們都匹配。然而,它對他有用,但立即失敗在我的開箱。

通過比較我們的輸出,失敗的線是當它正在尋找一個處理程序。在我同事的系統控制檯輸出爲:

12:03:50.295 INFO - Found handler: [email protected] 
12:03:50.296 INFO - Handler thread for session 397d539330b46b88d3df3471e0cc30a6 (chrome): Executing POST on /session/397d539330b46b88d3df3471e0cc30a6/timeouts (handler: ServicedSession) 
12:03:50.301 INFO - To upstream: {"type":"script","ms":30000} 
12:03:50.305 INFO - To downstream: {"sessionId":"397d539330b46b88d3df3471e0cc30a6","status":0,"value":null} 


但是在我的dev的盒子,在這一點上,我得到以下幾點:

2017-08-15 12:00:42.145:WARN:osjs.HttpChannel:qtp1227229563-14: /wd/hub/session 
java.lang.NullPointerException 
     at com.google.gson.JsonPrimitive.isPrimitiveOrString(JsonPrimitive.java:278) 
     at com.google.gson.JsonPrimitive.setValue(JsonPrimitive.java:101) 
     at com.google.gson.JsonPrimitive.<init>(JsonPrimitive.java:65) 
     at org.openqa.selenium.remote.server.ExceptionHandler.lambda$execute$0(ExceptionHandler.java:82) 
     at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) 
     at java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source) 
     at java.util.stream.AbstractPipeline.copyInto(Unknown Source) 
     at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) 
     at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) 
     at java.util.stream.AbstractPipeline.evaluate(Unknown Source) 
     at java.util.stream.ReferencePipeline.collect(Unknown Source) 
     at org.openqa.selenium.remote.server.ExceptionHandler.execute(ExceptionHandler.java:88) 
     at org.openqa.selenium.remote.server.WebDriverServlet.handle(WebDriverServlet.java:247) 
     at org.openqa.selenium.remote.server.WebDriverServlet.doPost(WebDriverServlet.java:151) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 
     at org.openqa.selenium.remote.server.WebDriverServlet.service(WebDriverServlet.java:111) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
     at org.seleniumhq.jetty9.servlet.ServletHolder.handle(ServletHolder.java:841) 
     at org.seleniumhq.jetty9.servlet.ServletHandler.doHandle(ServletHandler.java:535) 
     at org.seleniumhq.jetty9.server.handler.ScopedHandler.handle(ScopedHandler.java:143) 
     at org.seleniumhq.jetty9.security.SecurityHandler.handle(SecurityHandler.java:548) 
     at org.seleniumhq.jetty9.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 
     at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190) 
     at org.seleniumhq.jetty9.server.handler.ContextHandler.doHandle(ContextHandler.java:1253) 
     at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168) 
     at org.seleniumhq.jetty9.servlet.ServletHandler.doScope(ServletHandler.java:473) 
     at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166) 
     at org.seleniumhq.jetty9.server.handler.ContextHandler.doScope(ContextHandler.java:1155) 
     at org.seleniumhq.jetty9.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 
     at org.seleniumhq.jetty9.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 
     at org.seleniumhq.jetty9.server.Server.handle(Server.java:564) 
     at org.seleniumhq.jetty9.server.HttpChannel.handle(HttpChannel.java:317) 
     at org.seleniumhq.jetty9.server.HttpConnection.onFillable(HttpConnection.java:251) 
     at org.seleniumhq.jetty9.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279) 
     at org.seleniumhq.jetty9.io.FillInterest.fillable(FillInterest.java:110) 
     at org.seleniumhq.jetty9.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124) 
     at org.seleniumhq.jetty9.util.thread.Invocable.invokePreferred(Invocable.java:128) 
     at org.seleniumhq.jetty9.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222) 
     at org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294) 
     at org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:126) 
     at org.seleniumhq.jetty9.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:672) 
     at org.seleniumhq.jetty9.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:590) 
     at java.lang.Thread.run(Unknown Source) 

什麼的問題可能是有什麼想法?

+0

@WilliamHampshire謝謝,不過selenium-webdriver是作爲對量角器的依賴。我已經卸載並重新安裝了量角器幾次,並沒有任何區別 –

+0

可能重複[什麼是NullPointerException,以及如何解決它?](https://stackoverflow.com/questions/218384/what-is- a-nullpointerexception-and-how-do-i-fix-it) – JeffC

+0

@JeffC害怕NullPointerException是一個效果而不是原因。問題是如何讓量角器工作並處理它正在拋出的錯誤。 –

回答

0

好的,得到它的工作,並會發布以防其他人遇到這種情況。量角器在特定的目錄中尋找chrome,所以你需要確保你有chrome可執行文件。 Chrome的版本也很重要,因爲安裝的Chrome驅動程序只適用於特定版本的Chrome,如果出現不匹配的情況,那麼您會遇到這種情況。因此,請檢查您的Chrome版本和Chrome驅動程序版本,確保它們可以一起使用。 Chrome驅動程序下載頁面提供兼容性信息。不同版本的Protractor將爲您提供不同版本的chrome驅動程序,因此在升級時也需要注意這一點。

相關問題