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;
}