1*04fd306cSNickeau<?php 2*04fd306cSNickeau 3*04fd306cSNickeaunamespace Facebook\WebDriver\Firefox; 4*04fd306cSNickeau 5*04fd306cSNickeauuse Facebook\WebDriver\Remote\Service\DriverService; 6*04fd306cSNickeau 7*04fd306cSNickeauclass FirefoxDriverService extends DriverService 8*04fd306cSNickeau{ 9*04fd306cSNickeau /** 10*04fd306cSNickeau * @var string Name of the environment variable storing the path to the driver binary 11*04fd306cSNickeau */ 12*04fd306cSNickeau const WEBDRIVER_FIREFOX_DRIVER = 'WEBDRIVER_FIREFOX_DRIVER'; 13*04fd306cSNickeau /** 14*04fd306cSNickeau * @var string Default executable used when no other is provided 15*04fd306cSNickeau * @internal 16*04fd306cSNickeau */ 17*04fd306cSNickeau const DEFAULT_EXECUTABLE = 'geckodriver'; 18*04fd306cSNickeau 19*04fd306cSNickeau /** 20*04fd306cSNickeau * @return static 21*04fd306cSNickeau */ 22*04fd306cSNickeau public static function createDefaultService() 23*04fd306cSNickeau { 24*04fd306cSNickeau $pathToExecutable = getenv(static::WEBDRIVER_FIREFOX_DRIVER); 25*04fd306cSNickeau if ($pathToExecutable === false || $pathToExecutable === '') { 26*04fd306cSNickeau $pathToExecutable = static::DEFAULT_EXECUTABLE; 27*04fd306cSNickeau } 28*04fd306cSNickeau 29*04fd306cSNickeau $port = 9515; // TODO: Get another free port if the default port is used. 30*04fd306cSNickeau $args = ['-p=' . $port]; 31*04fd306cSNickeau 32*04fd306cSNickeau return new static($pathToExecutable, $port, $args); 33*04fd306cSNickeau } 34*04fd306cSNickeau} 35