xref: /plugin/combo/vendor/php-webdriver/webdriver/lib/Chrome/ChromeDriverService.php (revision 04fd306c7c155fa133ebb3669986875d65988276)
1*04fd306cSNickeau<?php
2*04fd306cSNickeau
3*04fd306cSNickeaunamespace Facebook\WebDriver\Chrome;
4*04fd306cSNickeau
5*04fd306cSNickeauuse Facebook\WebDriver\Remote\Service\DriverService;
6*04fd306cSNickeau
7*04fd306cSNickeauclass ChromeDriverService extends DriverService
8*04fd306cSNickeau{
9*04fd306cSNickeau    /**
10*04fd306cSNickeau     * The environment variable storing the path to the chrome driver executable.
11*04fd306cSNickeau     * @deprecated Use ChromeDriverService::CHROME_DRIVER_EXECUTABLE
12*04fd306cSNickeau     */
13*04fd306cSNickeau    const CHROME_DRIVER_EXE_PROPERTY = 'webdriver.chrome.driver';
14*04fd306cSNickeau    /** @var string The environment variable storing the path to the chrome driver executable */
15*04fd306cSNickeau    const CHROME_DRIVER_EXECUTABLE = 'WEBDRIVER_CHROME_DRIVER';
16*04fd306cSNickeau    /**
17*04fd306cSNickeau     * @var string Default executable used when no other is provided
18*04fd306cSNickeau     * @internal
19*04fd306cSNickeau     */
20*04fd306cSNickeau    const DEFAULT_EXECUTABLE = 'chromedriver';
21*04fd306cSNickeau
22*04fd306cSNickeau    /**
23*04fd306cSNickeau     * @return static
24*04fd306cSNickeau     */
25*04fd306cSNickeau    public static function createDefaultService()
26*04fd306cSNickeau    {
27*04fd306cSNickeau        $pathToExecutable = getenv(self::CHROME_DRIVER_EXECUTABLE) ?: getenv(self::CHROME_DRIVER_EXE_PROPERTY);
28*04fd306cSNickeau        if ($pathToExecutable === false || $pathToExecutable === '') {
29*04fd306cSNickeau            $pathToExecutable = static::DEFAULT_EXECUTABLE;
30*04fd306cSNickeau        }
31*04fd306cSNickeau
32*04fd306cSNickeau        $port = 9515; // TODO: Get another port if the default port is used.
33*04fd306cSNickeau        $args = ['--port=' . $port];
34*04fd306cSNickeau
35*04fd306cSNickeau        return new static($pathToExecutable, $port, $args);
36*04fd306cSNickeau    }
37*04fd306cSNickeau}
38