title: Error running PhantomJS with Selenium RemoteWebDriver
body: <p>I start a selenium grid hub with it's default startup command,</p>
  
  <pre><code>java -jar selenium-server-standalone-2.33.0.jar -role hub
  </code></pre>
  
  <p>And I start up PhantomJS in it's webdriver mode, on the same machine, like,</p>
  
  <pre><code>phantomjs --webdriver=8080 --webdriver-selenium-grid-hub=http://127.0.0.1:4444
  </code></pre>
  
  <p>When PhantomJS starts up, I get nothing but "All 'OK'" messages,</p>
  
  <pre><code>[INFO  - 2013-09-09T18:10:38.849Z] GhostDriver - Main - running on port 8080
  [INFO  - 2013-09-09T18:10:38.850Z] GhostDriver - Main - registering to Selenium HUB 'http://127.0.0.1:4444' using '127.0.0.1:8080'
  [INFO  - 2013-09-09T18:11:47.164Z] HUB Register - register - Registered with grid hub: http://127.0.0.1:4444/ (ok)
  </code></pre>
  
  <p>But if I try to use that browser, with</p>
  
  <pre><code>driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                            desired_capabilities=DesiredCapabilities.PHANTOMJS)
  </code></pre>
  
  <p>Looking at the output from the PhantomJS executable,</p>
  
  <pre><code>[INFO  - 2013-09-09T18:17:12.531Z] Session [0c5c9500-197c-11e3-8eed-b3b7a73965aa] - _decorateNewWindow - page.settings: {"XSSAuditingEnabled":false,"javascriptCanCloseWindows":true,"javascriptCanOpenWindows":true,"javascriptEnabled":true,"loadImages":true,"localToRemoteUrlAccessEnabled":false,"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.9.2 Safari/534.34","webSecurityEnabled":true}
  [INFO  - 2013-09-09T18:17:12.531Z] Session [0c5c9500-197c-11e3-8eed-b3b7a73965aa] - page.customHeaders:  - {}
  [INFO  - 2013-09-09T18:17:12.531Z] Session [0c5c9500-197c-11e3-8eed-b3b7a73965aa] - CONSTRUCTOR - Desired Capabilities: {"platform":"ANY","javascriptEnabled":true,"browserName":"phantomjs","version":""}
  [INFO  - 2013-09-09T18:17:12.531Z] Session [0c5c9500-197c-11e3-8eed-b3b7a73965aa] - CONSTRUCTOR - Negotiated Capabilities: {"browserName":"phantomjs","version":"1.9.2","driverName":"ghostdriver","driverVersion":"1.0.4","platform":"mac-10.7 (Lion)-32bit","javascriptEnabled":true,"takesScreenshot":true,"handlesAlerts":false,"databaseEnabled":false,"locationContextEnabled":false,"applicationCacheEnabled":false,"browserConnectionEnabled":false,"cssSelectorsEnabled":true,"webStorageEnabled":false,"rotatable":false,"acceptSslCerts":false,"nativeEvents":true,"proxy":{"proxyType":"direct"}}
  [INFO  - 2013-09-09T18:17:12.531Z] SessionManagerReqHand - _postNewSessionCommand - New Session Created: 0c5c9500-197c-11e3-8eed-b3b7a73965aa
  </code></pre>
  
  <p>Everything <em>seems</em> to be fine, but the code crashes :/  I get a huge error stacktrace, mainly down to,</p>
  
  <pre><code>selenium.common.exceptions.WebDriverException: Message: u'Error forwarding the new session new session request for webdriver should contain a location header with the session.'
  </code></pre>
  
  <p>And if you check the output of the grid hub,</p>
  
  <pre><code>INFO: Trying to create a new session on test slot {seleniumProtocol=WebDriver, browserName=phantomjs, maxInstances=1}
  INFO: Available nodes: [host :http://127.0.0.1:8080 time out : 300000]
  </code></pre>
  
  <p>There also seems to be an issue.  It seems like, for whatever reason, the grid hub doesn't get any information back from the PhantomJS executable, even though it <em>seems</em> like it is processing things correctly.</p>
  
  <p>For testing, I also have a regular selenium node running, on the same machine, with the command</p>
  
  <pre><code>java -jar selenium-server-standalone-2.33.0.jar -role node
  </code></pre>
  
  <p>and if I start up a Firefox RemoteWebDriver session (in Python), with</p>
  
  <pre><code>driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                            desired_capabilities=DesiredCapabilities.FIREFOX)
  </code></pre>
  
  <p>all is fine.</p>
  
  <p>It looks like everything is set up correctly, I'm keeping things as 'vanilla' and close to what the docs say as possible, but just can't get over the fence here.</p>
  
  <p>The exact same error happens when trying in Java, too</p>
  
  <pre><code>WebDriver driver = new RemoteWebDriver(DesiredCapabilities.phantomjs());
  </code></pre>
  
  <p>Screenshot of the grid console with both connected, PhantomJS is alive and well there,</p>
  
  <p><img src="https://i.stack.imgur.com/AZBgr.png" alt="enter image description here"></p>
  
  <p>Left is default selenium node, right is PhantomJS (and 10.0.0.222 is my laptop's IP address in work).</p>
  
  <p>And my versions are 1.9.2 for PhantomJS and obviously 2.33.0 for selenium.</p>