/** * Construct the RemoteWebDriver by a desired capabilities. * * @param string $url The url of the remote server * @param DesiredCapabilities $desired_capabilities The desired capabilities * @param int $timeout_in_ms * @return RemoteWebDriver */ public static function create($url = 'http://localhost:4444/wd/hub', $desired_capabilities = null, $timeout_in_ms = 300000) { $url = preg_replace('#/+$#', '', $url); // Passing DesiredCapabilities as $desired_capabilities is encourged but // array is also accepted for legacy reason. if ($desired_capabilities instanceof DesiredCapabilities) { $desired_capabilities = $desired_capabilities->toArray(); } $executor = new HttpCommandExecutor($url); $executor->setTimeout($timeout_in_ms); $command = new WebDriverCommand(null, DriverCommand::NEW_SESSION, array('desiredCapabilities' => $desired_capabilities)); $response = $executor->execute($command); $driver = new static(); $driver->setSessionID($response->getSessionID())->setCommandExecutor($executor); return $driver; }