PhantomJS throws error when running test using proxy (JUnit test)

I am running a Java-based Selenium test in PhantomJS 1.9.1 and GhostDriver 1.0.4, JDK 1.7, and Win 7 OS.

I also use the BrowserMob proxy to capture network traffic to check for some network calls. Below is what my code looks like.

server = new ProxyServer(44444); server.start(); final Proxy proxy = server.seleniumProxy(); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.PROXY, proxy); capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); capabilities.setCapability(CapabilityType.TAKES_SCREENSHOT, true); capabilities.setCapability(CapabilityType.SUPPORTS_FINDING_BY_CSS, true); capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, new String[] { "--ignore-ssl-errors=yes" }); capabilities.setCapability("browserType", "phantomjs"); capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, System.getenv("PHANTOMJS_EXECUTABLE_PATH_PROPERTY")); capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_GHOSTDRIVER_PATH_PROPERTY, System.getenv("GHOST_DRIVER_HOME") + "\\main.js"); driver = new PhantomJSDriver(capabilities); 

Then I do my test. Someday the test passes without any error, and sometimes I get 2 different errors. I'm not sure what could have caused this.

If you can help me or let me know what might be wrong here. If necessary, I can provide more specific information.

 [ERROR - 2013-07-30T14:05:46.693Z] WebElementLocator - _handleLocateCommand - Element(s) NOT Found: GAVE UP. Search Stop Time: 1375193146688 [ERROR - 2013-07-30T14:05:46.713Z] RouterReqHand - _handle - Thrown => { "message": "Error Message => 'Currently Window handle/name is invalid (closed?)'\n caused by Request => {\"headers\":{\"Accept\":\"application/json, image/png\",\"Connection\":\"Keep-Alive\",\"Host\":\"localhost:32417\"},\"httpVersion\":\"1.1\",\"method\":\"DELETE\",\"url\":\"/cookie\",\"urlParsed\":{\"anchor\":\"\",\"query\":\"\",\"file\":\"cookie\",\"directory\":\"/\",\"path\":\"/cookie\",\"relative\":\"/cookie\",\"port\":\"\",\"host\":\"\",\"password\":\"\",\"user\":\"\",\"userInfo\":\"\",\"authority\":\"\",\"protocol\":\"\",\"source\":\"/cookie\",\"queryKey\":{},\"chunks\":[\"cookie\"]},\"urlOriginal\":\"/session/f6843ca0-f91f-11e2-a28f-21e9e63595b3/cookie\"}", "name": "NoSuchWindow", "errorStatusCode": 23, "errorSessionId": "f6843ca0-f91f-11e2-a28f-21e9e63595b3", "errorClassName": "SessionReqHand", "errorScreenshot": "", "line": 193, "sourceId": 79329192, "sourceURL": "request_handlers/request_handler.js", "stack": "NoSuchWindow: Error Message => 'Currently Window handle/name is invalid (closed?)'\n caused by Request => {\"headers\":{\"Accept\":\"application/json, image/png\",\"Connection\":\"Keep-Alive\",\"Host\":\"localhost:32417\"},\"httpVersion\":\"1.1\",\"method\":\"DELETE\",\"url\":\"/cookie\",\"urlParsed\":{\"anchor\":\"\",\"query\":\"\",\"file\":\"cookie\",\"directory\":\"/\",\"path\":\"/cookie\",\"relative\":\"/cookie\",\"port\":\"\",\"host\":\"\",\"password\":\"\",\"user\":\"\",\"userInfo\":\"\",\"authority\":\"\",\"protocol\":\"\",\"source\":\"/cookie\",\"queryKey\":{},\"chunks\":[\"cookie\"]},\"urlOriginal\":\"/session/f6843ca0-f91f-11e2-a28f-21e9e63595b3/cookie\"}\n at request_handlers/request_handler.js:193\n at request_handlers/request_handler.js:168\n at request_handlers/session_request_handler.js:785\n at request_handlers/session_request_handler.js:178\n at request_handlers/request_handler.js:61\n at request_handlers/router_request_handler.js:78", "stackArray": [ { "sourceURL": "request_handlers/request_handler.js", "line": 193 }, { "sourceURL": "request_handlers/request_handler.js", "line": 168 }, { "sourceURL": "request_handlers/session_request_handler.js", "line": 785 }, { "sourceURL": "request_handlers/session_request_handler.js", "line": 178 }, { "sourceURL": "request_handlers/request_handler.js", "line": 61 }, { "sourceURL": "request_handlers/router_request_handler.js", "line": 78 } ] } 

This is another exception that I get all the time.

 org.openqa.selenium.remote.UnreachableBrowserException: Error communicating with the remote browser. It may have died. Build info: version: '2.33.0', revision: '4ecaf82108b2a6cc6f006aae81961236eba93358', time: '2013-05-22 12:00:17' System info: os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_17' Driver info: driver.version: RemoteWebDriver at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548) at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:307) at org.openqa.selenium.remote.RemoteWebDriver.findElementById(RemoteWebDriver.java:348) at org.openqa.selenium.By$ById.findElement(By.java:216) at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:299) at org.openqa.selenium.support.pagefactory.DefaultElementLocator.findElement(DefaultElementLocator.java:59) at org.openqa.selenium.support.pagefactory.internal.LocatingElementHandler.invoke(LocatingElementHandler.java:34) at com.sun.proxy.$Proxy8.isEnabled(Unknown Source) at com.ihg.dec.apps.hi.test.selenium.homepage.HomePage.transitionToHotelSearchResultsPage(HomePage.java:402) at com.ihg.dec.apps.hi.test.selenium.homepage.HomePage.transitionToHotelSearchResultsPage(HomePage.java:381) at com.ihg.dec.apps.hi.test.selenium.homepage.HomePage.transitionToHotelSearchResultsPage(HomePage.java:377) at com.ihg.dec.apps.hi.test.selenium.pixel.BasePixelTest.gotoSearchResultPage(BasePixelTest.java:522) at com.ihg.dec.apps.hi.test.selenium.pixel.BasePixelTest.gotoRoomRatePage(BasePixelTest.java:501) at com.ihg.dec.apps.hi.test.selenium.pixel.BasePixelTest.gotoGuestInfoPage(BasePixelTest.java:397) at com.ihg.dec.apps.hi.test.selenium.pixel.PixelRegressionTest.testPixelOnGuestInfoPage(PixelRegressionTest.java:333) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) Caused by: org.openqa.selenium.WebDriverException: java.net.SocketException: Software caused connection abort: recv failed Build info: version: '2.33.0', revision: '4ecaf82108b2a6cc6f006aae81961236eba93358', time: '2013-05-22 12:00:17' System info: os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_17' Driver info: driver.version: RemoteWebDriver at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:75) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:527) ... 39 more Caused by: java.net.SocketException: Software caused connection abort: recv failed at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:150) at java.net.SocketInputStream.read(SocketInputStream.java:121) at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:166) at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:90) at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:281) at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:98) at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:254) at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:289) at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:247) at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:219) at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:300) at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:127) at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:645) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:464) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820) at org.openqa.selenium.remote.HttpCommandExecutor.fallBackExecute(HttpCommandExecutor.java:316) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:295) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:66) ... 40 more 
+6
source share

Source: https://habr.com/ru/post/950648/


All Articles