Nearsoft\SeleniumClient\TargetLocator::newTab PHP Method

newTab() public method

Opens a new tab for the given URL
See also: http://stackoverflow.com/a/9122450/650329
public newTab ( string $url ) : string
$url string The URL to open
return string The handle of the previously active window
    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;
    }