public function tearDown()
 {
     // return if the driver wasn't initialized
     if (!$this->_driver) {
         return;
     }
     if (self::$_config['persist']) {
         try {
             $alert = new Alert($this->_driver);
             $alert->dismiss();
         } catch (Exception $e) {
         }
         try {
             foreach ($this->_driver->getWindowHandles() as $handle) {
                 // skip the original window
                 if ($handle == self::$_handle) {
                     continue;
                 }
                 // try to close any other windows that were opened
                 try {
                     $this->_driver->switchTo()->window($handle);
                     $this->_driver->close();
                 } catch (Exception $e) {
                 }
             }
             $this->_driver->switchTo()->window(self::$_handle);
             $this->_driver->switchTo()->activeElement();
         } catch (SeleniumUnknownErrorException $e) {
             // test case may have closed the parent window
             self::$_handle = null;
             return;
         }
         $this->_driver->manage()->deleteAllCookies();
         $this->_driver->manage()->timeouts()->implicitWait(0);
         $this->_driver->manage()->window()->setPosition($this->_position['x'], $this->_position['y']);
         $this->_driver->manage()->window()->setSize($this->_size['width'], $this->_size['height']);
         $this->_driver->manage()->timeouts()->pageLoadTimeout(10000);
     } else {
         try {
             $this->_driver->quit();
         } catch (Exception $e) {
         }
     }
 }