Overview

Namespaces

  • Peridot
    • WebDriverManager
      • Binary
        • Decompression
        • Request
      • Console
      • Event
      • OS
      • Process
      • Test
  • PHP

Classes

  • AbstractBinary
  • BinaryResolver
  • ChromeDriver
  • CompressedBinary
  • IEDriver
  • SeleniumStandalone

Interfaces

  • BinaryInterface
  • BinaryResolverInterface
  • DriverInterface
  • Overview
  • Namespace
  • Class
  • Tree
  1: <?php
  2: namespace Peridot\WebDriverManager\Binary;
  3: 
  4: use Peridot\WebDriverManager\Versions;
  5: 
  6: /**
  7:  * ChromeDriver is used to resolve the Selenium Server driver for using the Chrome
  8:  * web browser.
  9:  *
 10:  * @package Peridot\WebDriverManager\Binary
 11:  */
 12: class ChromeDriver extends CompressedBinary implements DriverInterface
 13: {
 14:     /**
 15:      * {@inheritdoc}
 16:      *
 17:      * @return string
 18:      */
 19:     public function getName()
 20:     {
 21:         return 'chromedriver';
 22:     }
 23: 
 24:     /**
 25:      * {@inheritdoc}
 26:      *
 27:      * @return string
 28:      */
 29:     public function getFileName()
 30:     {
 31:         $file = "chromedriver_";
 32:         $system = $this->resolver->getSystem();
 33: 
 34:         if ($system->isMac()) {
 35:             $file .= 'mac32';
 36:         }
 37: 
 38:         if ($system->isWindows()) {
 39:             $file .= "win32";
 40:         }
 41: 
 42:         if ($system->isLinux()) {
 43:             $file .= $this->getLinuxFileName();
 44:         }
 45: 
 46:         return "$file.zip";
 47:     }
 48: 
 49:     /**
 50:      * {@inheritdoc}
 51:      *
 52:      * @return string
 53:      */
 54:     public function getUrl()
 55:     {
 56:         $version = Versions::CHROMEDRIVER;
 57:         return "http://chromedriver.storage.googleapis.com/$version/{$this->getFileName()}";
 58:     }
 59: 
 60:     /**
 61:      * {@inheritdoc}
 62:      *
 63:      * @return string
 64:      */
 65:     public function getOutputFileName()
 66:     {
 67:         $version = Versions::CHROMEDRIVER;
 68:         return "chromedriver_$version.zip";
 69:     }
 70: 
 71:     /**
 72:      * Get the linux filename.
 73:      *
 74:      * @return string
 75:      */
 76:     public function getLinuxFileName()
 77:     {
 78:         $file = "linux32";
 79:         $system = $this->resolver->getSystem();
 80:         if ($system->is64Bit()) {
 81:             $file = 'linux64';
 82:         }
 83:         return $file;
 84:     }
 85: 
 86:     /**
 87:      * Remove old versions of the binary.
 88:      *
 89:      * @param $directory
 90:      * @return void
 91:      */
 92:     protected function removeOldVersions($directory)
 93:     {
 94:         $paths = glob("$directory/chromedriver*");
 95:         foreach ($paths as $path) {
 96:             unlink($path);
 97:         }
 98:     }
 99: 
100:     /**
101:      * {@inheritdoc}
102:      *
103:      * @param string $directory
104:      * @return string
105:      */
106:     protected function getOldFilePattern($directory)
107:     {
108:         return $directory . '/' . str_replace(Versions::CHROMEDRIVER, '*', $this->getOutputFileName());
109:     }
110: 
111:     /**
112:      * {@inheritdoc}
113:      *
114:      * @param string $directory
115:      * @return string
116:      */
117:     public function getDriverPath($directory)
118:     {
119:         $file = "$directory/chromedriver";
120:         $system = $this->resolver->getSystem();
121: 
122:         if ($system->isWindows()) {
123:             $file .= '.exe';
124:         }
125: 
126:         return "webdriver.chrome.driver=$file";
127:     }
128: 
129:     /**
130:      * {@inheritdoc}
131:      *
132:      * @return string
133:      */
134:     public function getExtractedName()
135:     {
136:         return $this->getName();
137:     }
138: }
139: 
WebDriver Manager API documentation generated by ApiGen