2017-04-20 56 views
0

我面臨硒測試的問題,我的測試無法連接到服務器「連接被拒絕」。我用我的circle.yml手動安裝Selenium和它的chromedriver。我正在Symfony應用程序上運行Behat測試。CircleCI上使用Chromedriver的硒:「拒絕連接」

這裏是我的配置:

dependencies: 
    pre: 
    # Install Chrome driver 
    - curl http://chromedriver.storage.googleapis.com/2.23/chromedriver_linux64.zip | gzip -dc > chromedriver 
    - chmod +x chromedriver 
    # Install Selenium 
    - curl http://selenium-release.storage.googleapis.com/2.53/selenium-server-standalone-2.53.1.jar > selenium-server-standalone.jar 
    - 'java -jar selenium-server-standalone.jar -trustAllSSLCertificates -Dwebdriver.chrome.driver=chromedriver': 
     background: true 

而且STD錯誤:

15:56:28.737 INFO - Launching a standalone Selenium Server 
Setting system property webdriver.chrome.driver to chromedriver 
15:56:28.779 INFO - Java: Oracle Corporation 25.102-b14 
15:56:28.779 INFO - OS: Linux 3.13.0-115-generic amd64 
15:56:28.795 INFO - v2.53.1, with Core v2.53.1. Built from revision a36b8b1 
15:56:28.900 INFO - Driver provider org.openqa.selenium.ie.InternetExplorerDriver registration is skipped: 
registration capabilities Capabilities [{ensureCleanSession=true, browserName=internet explorer, version=, platform=WINDOWS}] does not match the current platform LINUX 
15:56:28.901 INFO - Driver provider org.openqa.selenium.edge.EdgeDriver registration is skipped: 
registration capabilities Capabilities [{browserName=MicrosoftEdge, version=, platform=WINDOWS}] does not match the current platform LINUX 
15:56:28.902 INFO - Driver class not found: com.opera.core.systems.OperaDriver 
15:56:28.902 INFO - Driver provider com.opera.core.systems.OperaDriver is not registered 
15:56:28.905 INFO - Driver provider org.openqa.selenium.safari.SafariDriver registration is skipped: 
registration capabilities Capabilities [{browserName=safari, version=, platform=MAC}] does not match the current platform LINUX 
15:56:28.906 INFO - Driver class not found: org.openqa.selenium.htmlunit.HtmlUnitDriver 
15:56:28.906 INFO - Driver provider org.openqa.selenium.htmlunit.HtmlUnitDriver is not registered 
15:56:29.009 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub 
15:56:29.009 INFO - Selenium Server is up and running 
16:02:27.578 INFO - Executing: [new session: Capabilities [{browser=firefox, name=Behat feature suite, browserName=chrome, ignoreZoomSetting=false, tags=[box5.localdomain, PHP 7.0.11]}]]) 
16:02:27.590 INFO - Creating a new session for Capabilities [{browser=firefox, name=Behat feature suite, browserName=chrome, ignoreZoomSetting=false, tags=[box5.localdomain, PHP 7.0.11]}] 
Starting ChromeDriver 2.23.409687 (c46e862757edc04c06b1bd88724d15a5807b84d1) on port 8696 
Only local connections are allowed. 
16:02:33.118 INFO - Command failed to close cleanly. Destroying forcefully (v2). [/home/ubuntu/kaya/chromedriver, --port=8696][ {}] 
16:02:34.127 ERROR - Unable to kill process with PID 41907 
16:02:34.133 WARN - Exception thrown 
java.util.concurrent.ExecutionException: org.openqa.selenium.WebDriverException: java.lang.reflect.InvocationTargetException 
Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:37:03' 
System info: host: 'box5.localdomain', ip: '127.0.0.1', os.name: 'Linux', os.arch: 'amd64', os.version: '3.13.0-115-generic', java.version: '1.8.0_102' 
Driver info: driver.version: unknown 
    at java.util.concurrent.FutureTask.report(FutureTask.java:122) 
    at java.util.concurrent.FutureTask.get(FutureTask.java:192) 
    at org.openqa.selenium.remote.server.DefaultSession.execute(DefaultSession.java:183) 
    at org.openqa.selenium.remote.server.DefaultSession.<init>(DefaultSession.java:119) 
    at org.openqa.selenium.remote.server.DefaultSession.createSession(DefaultSession.java:95) 
    at org.openqa.selenium.remote.server.DefaultDriverSessions.newSession(DefaultDriverSessions.java:124) 
    at org.openqa.selenium.remote.server.handler.NewSession.handle(NewSession.java:59) 
    at org.openqa.selenium.remote.server.handler.NewSession.handle(NewSession.java:1) 
    at org.openqa.selenium.remote.server.rest.ResultConfig.handle(ResultConfig.java:111) 
    at org.openqa.selenium.remote.server.JsonHttpCommandHandler.handleRequest(JsonHttpCommandHandler.java:79) 
    at org.openqa.selenium.remote.server.DriverServlet.handleRequest(DriverServlet.java:204) 
    at org.openqa.selenium.remote.server.DriverServlet.doPost(DriverServlet.java:166) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 
    at org.openqa.selenium.remote.server.DriverServlet.service(DriverServlet.java:132) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
    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 
Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:37:03' 
System info: host: 'box5.localdomain', ip: '127.0.0.1', os.name: 'Linux', os.arch: 'amd64', os.version: '3.13.0-115-generic', java.version: '1.8.0_102' 
Driver info: driver.version: unknown 
    at org.openqa.selenium.remote.server.DefaultDriverProvider.callConstructor(DefaultDriverProvider.java:113) 
    at org.openqa.selenium.remote.server.DefaultDriverProvider.newInstance(DefaultDriverProvider.java:97) 
    at org.openqa.selenium.remote.server.DefaultDriverFactory.newInstance(DefaultDriverFactory.java:60) 
    at org.openqa.selenium.remote.server.DefaultSession$BrowserCreator.call(DefaultSession.java:222) 
    at org.openqa.selenium.remote.server.DefaultSession$BrowserCreator.call(DefaultSession.java:1) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:176) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at org.openqa.selenium.remote.server.DefaultDriverProvider.callConstructor(DefaultDriverProvider.java:103) 
    ... 9 more 
Caused by: org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure. 
Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:37:03' 
System info: host: 'box5.localdomain', ip: '127.0.0.1', os.name: 'Linux', os.arch: 'amd64', os.version: '3.13.0-115-generic', java.version: '1.8.0_102' 
Driver info: driver.version: ChromeDriver 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:665) 
    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:138) 
    ... 14 more 
Caused by: org.openqa.selenium.WebDriverException: org.apache.http.conn.HttpHostConnectException: Connect to localhost:8696 [localhost/127.0.0.1] failed: Connection refused 
Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:37:03' 
System info: host: 'box5.localdomain', ip: '127.0.0.1', os.name: 'Linux', os.arch: 'amd64', os.version: '3.13.0-115-generic', java.version: '1.8.0_102' 
Driver info: driver.version: ChromeDriver 
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:91) 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:644) 
    ... 19 more 
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to localhost:8696 [localhost/127.0.0.1] failed: Connection refused 
    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:151) 
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353) 
    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380) 
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236) 
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184) 
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88) 
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) 
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:71) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55) 
    at org.openqa.selenium.remote.internal.ApacheHttpClient.fallBackExecute(ApacheHttpClient.java:162) 
    at org.openqa.selenium.remote.internal.ApacheHttpClient.execute(ApacheHttpClient.java:90) 
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142) 
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82) 
    ... 20 more 
Caused by: java.net.ConnectException: Connection refused 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
    at java.net.Socket.connect(Socket.java:589) 
    at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:74) 
    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:134) 
    ... 33 more 
16:02:34.143 WARN - Exception: Connection refused 

我的測試是在貝哈特(V3),將水貂擴展(V2.2)和水貂硒驅動程序(運行V1.3)。

此外,測試正在我自己的機器上傳遞。我在Windows上,所以我們無法比較,但至少我認爲這不是我自己的測試代碼失敗。

我已經沒有想法了。它應該工作很簡單,但我不能讓它工作。到目前爲止,互聯網對此沒有任何幫助。

感謝您的任何見解!

+0

你可以張貼一些代碼創建的驅動程序? – mrfreester

+0

我不確定你指的是哪個驅動程序?我的測試在Behat(v3)上運行,其中包含Mink擴展(v2.2)和Mink Selenium驅動(v1.3)。另外,測試通過我自己的機器。我在Windows上,所以我們無法比較,但至少我認爲這不是我自己的測試代碼失敗。我已經編輯了這個問題。謝謝。 – abacco

+0

我想知道一些運行測試的代碼,雖然也許有些提到的這些工具可以讓你不寫任何代碼......我不確定。無論如何,我希望有一些語法或代碼能夠運行這些語法......以及某處實際初始化ChromeDriver以用於測試的代碼行 – mrfreester

回答

1

確定我已經找到了問題:

  1. 我使用的是舊版本的硒。升級到3.3的確有竅門。我不知道版本3存在。
  2. 當執行Selenium3,請注意參數的順序的:java -jar selenium-server-standalone.jar -Dwebdriver.chrome.driver=chromedriver必須成爲java -Dwebdriver.chrome.driver=chromedriver -jar selenium-server-standalone.jar