/**
  * Opens a new tab for the given URL
  * @param string $url The URL to open
  * @return string The handle of the previously active window
  * @see http://stackoverflow.com/a/9122450/650329
  * @throws SeleniumJavaScriptErrorException If unable to open tab
  */
 public function newTab($url)
 {
     $script = "var d=document,a=d.createElement('a');a.target='_blank';a.href='%s';a.innerHTML='.';d.body.appendChild(a);return a";
     $element = $this->_driver->executeScript(sprintf($script, $url));
     if (empty($element)) {
         throw new Exceptions\JavaScriptError('Unable to open tab');
     }
     $existingHandles = $this->_driver->getWindowHandles();
     $anchor = new WebElement($this->_driver, $element['ELEMENT']);
     $anchor->click();
     $this->_driver->executeScript('var d=document,a=arguments[0];a.parentNode.removeChild(a);', array($element));
     $newHandles = array_values(array_diff($this->_driver->getWindowHandles(), $existingHandles));
     $newHandle = $newHandles[0];
     $oldHandle = $this->_driver->getWindowHandle();
     $this->window($newHandle);
     return $oldHandle;
 }