Example #1
0
 /**
  * Construct the RemoteWebDriver by a desired capabilities.
  *
  * @param string $url The url of the remote server
  * @param DesiredCapabilities|array $desired_capabilities The desired capabilities
  * @param int|null $connection_timeout_in_ms
  * @param int|null $request_timeout_in_ms
  * @param string|null $http_proxy The proxy to tunnel requests through
  * @param int|null $http_proxy_port
  * @return RemoteWebDriver
  */
 public static function create($url = 'http://localhost:4444/wd/hub', $desired_capabilities = null, $connection_timeout_in_ms = null, $request_timeout_in_ms = null, $http_proxy = null, $http_proxy_port = null)
 {
     $url = preg_replace('#/+$#', '', $url);
     // Passing DesiredCapabilities as $desired_capabilities is encouraged but
     // array is also accepted for legacy reason.
     if ($desired_capabilities instanceof DesiredCapabilities) {
         $desired_capabilities = $desired_capabilities->toArray();
     }
     $executor = new HttpCommandExecutor($url, $http_proxy, $http_proxy_port);
     if ($connection_timeout_in_ms !== null) {
         $executor->setConnectionTimeout($connection_timeout_in_ms);
     }
     if ($request_timeout_in_ms !== null) {
         $executor->setRequestTimeout($request_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;
 }