/**
  * This method implements the Selenium RC protocol.
  *
  * @param  string $command
  * @param  array  $arguments
  * @return mixed
  * @method unknown  addLocationStrategy()
  * @method unknown  addLocationStrategyAndWait()
  * @method unknown  addScript()
  * @method unknown  addScriptAndWait()
  * @method unknown  addSelection()
  * @method unknown  addSelectionAndWait()
  * @method unknown  allowNativeXpath()
  * @method unknown  allowNativeXpathAndWait()
  * @method unknown  altKeyDown()
  * @method unknown  altKeyDownAndWait()
  * @method unknown  altKeyUp()
  * @method unknown  altKeyUpAndWait()
  * @method unknown  answerOnNextPrompt()
  * @method unknown  assignId()
  * @method unknown  assignIdAndWait()
  * @method unknown  attachFile()
  * @method unknown  break()
  * @method unknown  captureEntirePageScreenshot()
  * @method unknown  captureEntirePageScreenshotAndWait()
  * @method unknown  captureEntirePageScreenshotToStringAndWait()
  * @method unknown  captureScreenshotAndWait()
  * @method unknown  captureScreenshotToStringAndWait()
  * @method unknown  check()
  * @method unknown  checkAndWait()
  * @method unknown  chooseCancelOnNextConfirmation()
  * @method unknown  chooseCancelOnNextConfirmationAndWait()
  * @method unknown  chooseOkOnNextConfirmation()
  * @method unknown  chooseOkOnNextConfirmationAndWait()
  * @method unknown  click()
  * @method unknown  clickAndWait()
  * @method unknown  clickAt()
  * @method unknown  clickAtAndWait()
  * @method unknown  close()
  * @method unknown  contextMenu()
  * @method unknown  contextMenuAndWait()
  * @method unknown  contextMenuAt()
  * @method unknown  contextMenuAtAndWait()
  * @method unknown  controlKeyDown()
  * @method unknown  controlKeyDownAndWait()
  * @method unknown  controlKeyUp()
  * @method unknown  controlKeyUpAndWait()
  * @method unknown  createCookie()
  * @method unknown  createCookieAndWait()
  * @method unknown  deleteAllVisibleCookies()
  * @method unknown  deleteAllVisibleCookiesAndWait()
  * @method unknown  deleteCookie()
  * @method unknown  deleteCookieAndWait()
  * @method unknown  deselectPopUp()
  * @method unknown  deselectPopUpAndWait()
  * @method unknown  doubleClick()
  * @method unknown  doubleClickAndWait()
  * @method unknown  doubleClickAt()
  * @method unknown  doubleClickAtAndWait()
  * @method unknown  dragAndDrop()
  * @method unknown  dragAndDropAndWait()
  * @method unknown  dragAndDropToObject()
  * @method unknown  dragAndDropToObjectAndWait()
  * @method unknown  dragDrop()
  * @method unknown  dragDropAndWait()
  * @method unknown  echo()
  * @method unknown  fireEvent()
  * @method unknown  fireEventAndWait()
  * @method unknown  focus()
  * @method unknown  focusAndWait()
  * @method string   getAlert()
  * @method array    getAllButtons()
  * @method array    getAllFields()
  * @method array    getAllLinks()
  * @method array    getAllWindowIds()
  * @method array    getAllWindowNames()
  * @method array    getAllWindowTitles()
  * @method string   getAttribute()
  * @method array    getAttributeFromAllWindows()
  * @method string   getBodyText()
  * @method string   getConfirmation()
  * @method string   getCookie()
  * @method string   getCookieByName()
  * @method integer  getCursorPosition()
  * @method integer  getElementHeight()
  * @method integer  getElementIndex()
  * @method integer  getElementPositionLeft()
  * @method integer  getElementPositionTop()
  * @method integer  getElementWidth()
  * @method string   getEval()
  * @method string   getExpression()
  * @method string   getHtmlSource()
  * @method string   getLocation()
  * @method string   getLogMessages()
  * @method integer  getMouseSpeed()
  * @method string   getPrompt()
  * @method array    getSelectOptions()
  * @method string   getSelectedId()
  * @method array    getSelectedIds()
  * @method string   getSelectedIndex()
  * @method array    getSelectedIndexes()
  * @method string   getSelectedLabel()
  * @method array    getSelectedLabels()
  * @method string   getSelectedValue()
  * @method array    getSelectedValues()
  * @method unknown  getSpeed()
  * @method unknown  getSpeedAndWait()
  * @method string   getTable()
  * @method string   getText()
  * @method string   getTitle()
  * @method string   getValue()
  * @method boolean  getWhetherThisFrameMatchFrameExpression()
  * @method boolean  getWhetherThisWindowMatchWindowExpression()
  * @method integer  getXpathCount()
  * @method unknown  goBack()
  * @method unknown  goBackAndWait()
  * @method unknown  highlight()
  * @method unknown  highlightAndWait()
  * @method unknown  ignoreAttributesWithoutValue()
  * @method unknown  ignoreAttributesWithoutValueAndWait()
  * @method boolean  isAlertPresent()
  * @method boolean  isChecked()
  * @method boolean  isConfirmationPresent()
  * @method boolean  isCookiePresent()
  * @method boolean  isEditable()
  * @method boolean  isElementPresent()
  * @method boolean  isOrdered()
  * @method boolean  isPromptPresent()
  * @method boolean  isSomethingSelected()
  * @method boolean  isTextPresent()
  * @method boolean  isVisible()
  * @method unknown  keyDown()
  * @method unknown  keyDownAndWait()
  * @method unknown  keyDownNative()
  * @method unknown  keyDownNativeAndWait()
  * @method unknown  keyPress()
  * @method unknown  keyPressAndWait()
  * @method unknown  keyPressNative()
  * @method unknown  keyPressNativeAndWait()
  * @method unknown  keyUp()
  * @method unknown  keyUpAndWait()
  * @method unknown  keyUpNative()
  * @method unknown  keyUpNativeAndWait()
  * @method unknown  metaKeyDown()
  * @method unknown  metaKeyDownAndWait()
  * @method unknown  metaKeyUp()
  * @method unknown  metaKeyUpAndWait()
  * @method unknown  mouseDown()
  * @method unknown  mouseDownAndWait()
  * @method unknown  mouseDownAt()
  * @method unknown  mouseDownAtAndWait()
  * @method unknown  mouseMove()
  * @method unknown  mouseMoveAndWait()
  * @method unknown  mouseMoveAt()
  * @method unknown  mouseMoveAtAndWait()
  * @method unknown  mouseOut()
  * @method unknown  mouseOutAndWait()
  * @method unknown  mouseOver()
  * @method unknown  mouseOverAndWait()
  * @method unknown  mouseUp()
  * @method unknown  mouseUpAndWait()
  * @method unknown  mouseUpAt()
  * @method unknown  mouseUpAtAndWait()
  * @method unknown  mouseUpRight()
  * @method unknown  mouseUpRightAndWait()
  * @method unknown  mouseUpRightAt()
  * @method unknown  mouseUpRightAtAndWait()
  * @method unknown  open()
  * @method unknown  openWindow()
  * @method unknown  openWindowAndWait()
  * @method unknown  pause()
  * @method unknown  refresh()
  * @method unknown  refreshAndWait()
  * @method unknown  removeAllSelections()
  * @method unknown  removeAllSelectionsAndWait()
  * @method unknown  removeScript()
  * @method unknown  removeScriptAndWait()
  * @method unknown  removeSelection()
  * @method unknown  removeSelectionAndWait()
  * @method unknown  retrieveLastRemoteControlLogs()
  * @method unknown  rollup()
  * @method unknown  rollupAndWait()
  * @method unknown  runScript()
  * @method unknown  runScriptAndWait()
  * @method unknown  select()
  * @method unknown  selectAndWait()
  * @method unknown  selectFrame()
  * @method unknown  selectPopUp()
  * @method unknown  selectPopUpAndWait()
  * @method unknown  selectWindow()
  * @method unknown  setBrowserLogLevel()
  * @method unknown  setBrowserLogLevelAndWait()
  * @method unknown  setContext()
  * @method unknown  setCursorPosition()
  * @method unknown  setCursorPositionAndWait()
  * @method unknown  setMouseSpeed()
  * @method unknown  setMouseSpeedAndWait()
  * @method unknown  setSpeed()
  * @method unknown  setSpeedAndWait()
  * @method unknown  shiftKeyDown()
  * @method unknown  shiftKeyDownAndWait()
  * @method unknown  shiftKeyUp()
  * @method unknown  shiftKeyUpAndWait()
  * @method unknown  shutDownSeleniumServer()
  * @method unknown  store()
  * @method unknown  submit()
  * @method unknown  submitAndWait()
  * @method unknown  type()
  * @method unknown  typeAndWait()
  * @method unknown  typeKeys()
  * @method unknown  typeKeysAndWait()
  * @method unknown  uncheck()
  * @method unknown  uncheckAndWait()
  * @method unknown  useXpathLibrary()
  * @method unknown  useXpathLibraryAndWait()
  * @method unknown  waitForCondition()
  * @method unknown  waitForPageToLoad()
  * @method unknown  waitForPopUp()
  * @method unknown  windowFocus()
  * @method unknown  windowMaximize()
  */
 public function __call($command, $arguments)
 {
     $wait = FALSE;
     if (substr($command, -7, 7) == 'AndWait') {
         $command = substr($command, 0, -7);
         $wait = TRUE;
     }
     switch ($command) {
         case 'addLocationStrategy':
         case 'addScript':
         case 'addSelection':
         case 'allowNativeXpath':
         case 'altKeyDown':
         case 'altKeyUp':
         case 'answerOnNextPrompt':
         case 'assignId':
         case 'attachFile':
         case 'break':
         case 'captureEntirePageScreenshot':
         case 'captureScreenshot':
         case 'check':
         case 'chooseCancelOnNextConfirmation':
         case 'chooseOkOnNextConfirmation':
         case 'click':
         case 'clickAt':
         case 'close':
         case 'contextMenu':
         case 'contextMenuAt':
         case 'controlKeyDown':
         case 'controlKeyUp':
         case 'createCookie':
         case 'deleteAllVisibleCookies':
         case 'deleteCookie':
         case 'deselectPopUp':
         case 'doubleClick':
         case 'doubleClickAt':
         case 'dragAndDrop':
         case 'dragAndDropToObject':
         case 'dragDrop':
         case 'echo':
         case 'fireEvent':
         case 'focus':
         case 'goBack':
         case 'highlight':
         case 'ignoreAttributesWithoutValue':
         case 'keyDown':
         case 'keyDownNative':
         case 'keyPress':
         case 'keyPressNative':
         case 'keyUp':
         case 'keyUpNative':
         case 'metaKeyDown':
         case 'metaKeyUp':
         case 'mouseDown':
         case 'mouseDownAt':
         case 'mouseMove':
         case 'mouseMoveAt':
         case 'mouseOut':
         case 'mouseOver':
         case 'mouseUp':
         case 'mouseUpAt':
         case 'mouseUpRight':
         case 'mouseUpRightAt':
         case 'open':
         case 'openWindow':
         case 'pause':
         case 'refresh':
         case 'removeAllSelections':
         case 'removeScript':
         case 'removeSelection':
         case 'retrieveLastRemoteControlLogs':
         case 'rollup':
         case 'runScript':
         case 'select':
         case 'selectFrame':
         case 'selectPopUp':
         case 'selectWindow':
         case 'setBrowserLogLevel':
         case 'setContext':
         case 'setCursorPosition':
         case 'setMouseSpeed':
         case 'setSpeed':
         case 'shiftKeyDown':
         case 'shiftKeyUp':
         case 'shutDownSeleniumServer':
         case 'store':
         case 'submit':
         case 'type':
         case 'typeKeys':
         case 'uncheck':
         case 'useXpathLibrary':
         case 'windowFocus':
         case 'windowMaximize':
         case isset(self::$autoGeneratedCommands[$command]):
             // Pre-Command Actions
             switch ($command) {
                 case 'open':
                 case 'openWindow':
                     if ($this->collectCodeCoverageInformation) {
                         $this->deleteCookie('PHPUNIT_SELENIUM_TEST_ID', 'path=/');
                         $this->createCookie('PHPUNIT_SELENIUM_TEST_ID=' . $this->testId, 'path=/');
                     }
                     break;
                 case 'store':
                     // store is a synonym of storeExpression
                     // and RC only understands storeExpression
                     $command = 'storeExpression';
                     break;
             }
             if (isset(self::$autoGeneratedCommands[$command]) && self::$autoGeneratedCommands[$command]['functionHelper']) {
                 $helperArguments = array($command, $arguments, self::$autoGeneratedCommands[$command]);
                 call_user_func_array(array($this, self::$autoGeneratedCommands[$command]['functionHelper']), $helperArguments);
             } else {
                 $this->doCommand($command, $arguments);
             }
             // Post-Command Actions
             switch ($command) {
                 case 'addLocationStrategy':
                 case 'allowNativeXpath':
                 case 'assignId':
                 case 'captureEntirePageScreenshot':
                 case 'captureScreenshot':
                     // intentionally empty
                     break;
                 default:
                     if ($wait) {
                         if ($this->useWaitForPageToLoad) {
                             $this->waitForPageToLoad($this->seleniumTimeout * 1000);
                         } else {
                             sleep($this->wait);
                         }
                     }
                     if ($this->sleep > 0) {
                         sleep($this->sleep);
                     }
                     $this->testCase->runDefaultAssertions($command);
             }
             break;
         case 'getWhetherThisFrameMatchFrameExpression':
         case 'getWhetherThisWindowMatchWindowExpression':
         case 'isAlertPresent':
         case 'isChecked':
         case 'isConfirmationPresent':
         case 'isCookiePresent':
         case 'isEditable':
         case 'isElementPresent':
         case 'isOrdered':
         case 'isPromptPresent':
         case 'isSomethingSelected':
         case 'isTextPresent':
         case 'isVisible':
             return $this->getBoolean($command, $arguments);
             break;
         case 'getCursorPosition':
         case 'getElementHeight':
         case 'getElementIndex':
         case 'getElementPositionLeft':
         case 'getElementPositionTop':
         case 'getElementWidth':
         case 'getMouseSpeed':
         case 'getSpeed':
         case 'getXpathCount':
             $result = $this->getNumber($command, $arguments);
             if ($wait) {
                 $this->waitForPageToLoad($this->seleniumTimeout * 1000);
             }
             return $result;
             break;
         case 'getAlert':
         case 'getAttribute':
         case 'getBodyText':
         case 'getConfirmation':
         case 'getCookie':
         case 'getCookieByName':
         case 'getEval':
         case 'getExpression':
         case 'getHtmlSource':
         case 'getLocation':
         case 'getLogMessages':
         case 'getPrompt':
         case 'getSelectedId':
         case 'getSelectedIndex':
         case 'getSelectedLabel':
         case 'getSelectedValue':
         case 'getTable':
         case 'getText':
         case 'getTitle':
         case 'captureEntirePageScreenshotToString':
         case 'captureScreenshotToString':
         case 'getValue':
             $result = $this->getString($command, $arguments);
             if ($wait) {
                 $this->waitForPageToLoad($this->seleniumTimeout * 1000);
             }
             return $result;
             break;
         case 'getAllButtons':
         case 'getAllFields':
         case 'getAllLinks':
         case 'getAllWindowIds':
         case 'getAllWindowNames':
         case 'getAllWindowTitles':
         case 'getAttributeFromAllWindows':
         case 'getSelectedIds':
         case 'getSelectedIndexes':
         case 'getSelectedLabels':
         case 'getSelectedValues':
         case 'getSelectOptions':
             $result = $this->getStringArray($command, $arguments);
             if ($wait) {
                 $this->waitForPageToLoad($this->seleniumTimeout * 1000);
             }
             return $result;
             break;
         case 'waitForCondition':
         case 'waitForFrameToLoad':
         case 'waitForPopUp':
             if (count($arguments) == 1) {
                 $arguments[] = $this->seleniumTimeout * 1000;
             }
             $this->doCommand($command, $arguments);
             $this->testCase->runDefaultAssertions($command);
             break;
         case 'waitForPageToLoad':
             if (empty($arguments)) {
                 $arguments[] = $this->seleniumTimeout * 1000;
             }
             $this->doCommand($command, $arguments);
             $this->testCase->runDefaultAssertions($command);
             break;
         default:
             $this->stop();
             throw new BadMethodCallException("Method {$command} not defined.");
     }
 }
示例#2
0
文件: Driver.php 项目: xiplias/pails
 /**
  * This method implements the Selenium RC protocol.
  *
  * @param  string $command
  * @param  array  $arguments
  * @return mixed
  * @method unknown  addLocationStrategy()
  * @method unknown  addSelection()
  * @method unknown  addSelectionAndWait()
  * @method unknown  allowNativeXpath()
  * @method unknown  altKeyDown()
  * @method unknown  altKeyDownAndWait()
  * @method unknown  altKeyUp()
  * @method unknown  altKeyUpAndWait()
  * @method unknown  answerOnNextPrompt()
  * @method unknown  assignId()
  * @method unknown  captureScreenshot()
  * @method unknown  check()
  * @method unknown  chooseCancelOnNextConfirmation()
  * @method unknown  click()
  * @method unknown  clickAndWait()
  * @method unknown  clickAt()
  * @method unknown  clickAtAndWait()
  * @method unknown  close()
  * @method unknown  controlKeyDown()
  * @method unknown  controlKeyDownAndWait()
  * @method unknown  controlKeyUp()
  * @method unknown  controlKeyUpAndWait()
  * @method unknown  createCookie()
  * @method unknown  createCookieAndWait()
  * @method unknown  deleteCookie()
  * @method unknown  deleteCookieAndWait()
  * @method unknown  doubleClick()
  * @method unknown  doubleClickAndWait()
  * @method unknown  doubleClickAt()
  * @method unknown  doubleClickAtAndWait()
  * @method unknown  dragAndDrop()
  * @method unknown  dragAndDropAndWait()
  * @method unknown  dragAndDropToObject()
  * @method unknown  dragAndDropToObjectAndWait()
  * @method unknown  dragDrop()
  * @method unknown  dragDropAndWait()
  * @method unknown  fireEvent()
  * @method unknown  fireEventAndWait()
  * @method string   getAlert()
  * @method array    getAllButtons()
  * @method array    getAllFields()
  * @method array    getAllLinks()
  * @method array    getAllWindowIds()
  * @method array    getAllWindowNames()
  * @method array    getAllWindowTitles()
  * @method string   getAttribute()
  * @method array    getAttributeFromAllWindows()
  * @method string   getBodyText()
  * @method string   getConfirmation()
  * @method string   getCookie()
  * @method integer  getCursorPosition()
  * @method integer  getElementHeight()
  * @method integer  getElementIndex()
  * @method integer  getElementPositionLeft()
  * @method integer  getElementPositionTop()
  * @method integer  getElementWidth()
  * @method string   getEval()
  * @method string   getExpression()
  * @method string   getHtmlSource()
  * @method string   getLocation()
  * @method string   getLogMessages()
  * @method integer  getMouseSpeed()
  * @method string   getPrompt()
  * @method array    getSelectOptions()
  * @method string   getSelectedId()
  * @method array    getSelectedIds()
  * @method string   getSelectedIndex()
  * @method array    getSelectedIndexes()
  * @method string   getSelectedLabel()
  * @method array    getSelectedLabels()
  * @method string   getSelectedValue()
  * @method array    getSelectedValues()
  * @method unknown  getSpeed()
  * @method unknown  getSpeedAndWait()
  * @method string   getTable()
  * @method string   getText()
  * @method string   getTitle()
  * @method string   getValue()
  * @method boolean  getWhetherThisFrameMatchFrameExpression()
  * @method boolean  getWhetherThisWindowMatchWindowExpression()
  * @method integer  getXpathCount()
  * @method unknown  goBack()
  * @method unknown  goBackAndWait()
  * @method unknown  highlight()
  * @method unknown  highlightAndWait()
  * @method boolean  isAlertPresent()
  * @method boolean  isChecked()
  * @method boolean  isConfirmationPresent()
  * @method boolean  isEditable()
  * @method boolean  isElementPresent()
  * @method boolean  isOrdered()
  * @method boolean  isPromptPresent()
  * @method boolean  isSomethingSelected()
  * @method boolean  isTextPresent()
  * @method boolean  isVisible()
  * @method unknown  keyDown()
  * @method unknown  keyDownAndWait()
  * @method unknown  keyPress()
  * @method unknown  keyPressAndWait()
  * @method unknown  keyUp()
  * @method unknown  keyUpAndWait()
  * @method unknown  metaKeyDown()
  * @method unknown  metaKeyDownAndWait()
  * @method unknown  metaKeyUp()
  * @method unknown  metaKeyUpAndWait()
  * @method unknown  mouseDown()
  * @method unknown  mouseDownAndWait()
  * @method unknown  mouseDownAt()
  * @method unknown  mouseDownAtAndWait()
  * @method unknown  mouseMove()
  * @method unknown  mouseMoveAndWait()
  * @method unknown  mouseMoveAt()
  * @method unknown  mouseMoveAtAndWait()
  * @method unknown  mouseOut()
  * @method unknown  mouseOutAndWait()
  * @method unknown  mouseOver()
  * @method unknown  mouseOverAndWait()
  * @method unknown  mouseUp()
  * @method unknown  mouseUpAndWait()
  * @method unknown  mouseUpAt()
  * @method unknown  mouseUpAtAndWait()
  * @method unknown  open()
  * @method unknown  openWindow()
  * @method unknown  openWindowAndWait()
  * @method unknown  refresh()
  * @method unknown  refreshAndWait()
  * @method unknown  removeAllSelections()
  * @method unknown  removeAllSelectionsAndWait()
  * @method unknown  removeSelection()
  * @method unknown  removeSelectionAndWait()
  * @method unknown  select()
  * @method unknown  selectAndWait()
  * @method unknown  selectFrame()
  * @method unknown  selectWindow()
  * @method unknown  setContext()
  * @method unknown  setCursorPosition()
  * @method unknown  setCursorPositionAndWait()
  * @method unknown  setMouseSpeed()
  * @method unknown  setMouseSpeedAndWait()
  * @method unknown  setSpeed()
  * @method unknown  setSpeedAndWait()
  * @method unknown  shiftKeyDown()
  * @method unknown  shiftKeyDownAndWait()
  * @method unknown  shiftKeyUp()
  * @method unknown  shiftKeyUpAndWait()
  * @method unknown  submit()
  * @method unknown  submitAndWait()
  * @method unknown  type()
  * @method unknown  typeAndWait()
  * @method unknown  typeKeys()
  * @method unknown  typeKeysAndWait()
  * @method unknown  uncheck()
  * @method unknown  uncheckAndWait()
  * @method unknown  waitForCondition()
  * @method unknown  waitForPageToLoad()
  * @method unknown  waitForPopUp()
  * @method unknown  windowFocus()
  * @method unknown  windowMaximize()
  */
 public function __call($command, $arguments)
 {
     $wait = FALSE;
     if (substr($command, -7, 7) == 'AndWait') {
         $command = substr($command, 0, -7);
         $wait = TRUE;
     }
     switch ($command) {
         case 'addLocationStrategy':
         case 'addSelection':
         case 'allowNativeXpath':
         case 'altKeyDown':
         case 'altKeyUp':
         case 'answerOnNextPrompt':
         case 'assignId':
         case 'captureScreenshot':
         case 'check':
         case 'chooseCancelOnNextConfirmation':
         case 'click':
         case 'clickAt':
         case 'close':
         case 'controlKeyDown':
         case 'controlKeyUp':
         case 'createCookie':
         case 'deleteCookie':
         case 'doubleClick':
         case 'doubleClickAt':
         case 'dragAndDrop':
         case 'dragAndDropToObject':
         case 'dragDrop':
         case 'fireEvent':
         case 'goBack':
         case 'highlight':
         case 'keyDown':
         case 'keyPress':
         case 'keyUp':
         case 'metaKeyDown':
         case 'metaKeyUp':
         case 'mouseDown':
         case 'mouseDownAt':
         case 'mouseMove':
         case 'mouseMoveAt':
         case 'mouseOut':
         case 'mouseOver':
         case 'mouseUp':
         case 'mouseUpAt':
         case 'open':
         case 'openWindow':
         case 'refresh':
         case 'removeAllSelections':
         case 'removeSelection':
         case 'select':
         case 'selectFrame':
         case 'selectWindow':
         case 'setContext':
         case 'setCursorPosition':
         case 'setMouseSpeed':
         case 'setSpeed':
         case 'shiftKeyDown':
         case 'shiftKeyUp':
         case 'submit':
         case 'type':
         case 'typeKeys':
         case 'uncheck':
         case 'windowFocus':
         case 'windowMaximize':
             // Pre-Command Actions
             switch ($command) {
                 case 'open':
                 case 'openWindow':
                     if ($this->collectCodeCoverageInformation) {
                         $this->deleteCookie('PHPUNIT_SELENIUM_TEST_ID', '/');
                         $this->createCookie('PHPUNIT_SELENIUM_TEST_ID=' . $this->testId, 'path=/');
                     }
                     break;
             }
             $this->doCommand($command, $arguments);
             // Post-Command Actions
             switch ($command) {
                 case 'addLocationStrategy':
                 case 'allowNativeXpath':
                 case 'assignId':
                 case 'captureScreenshot':
                     // intentionally empty
                     break;
                 default:
                     if ($wait) {
                         if ($this->useWaitForPageToLoad) {
                             $this->doCommand('waitForPageToLoad', array($this->timeout));
                         } else {
                             sleep($this->wait);
                         }
                     }
                     if ($this->sleep > 0) {
                         sleep($this->sleep);
                     }
                     $this->testCase->runDefaultAssertions($command);
             }
             break;
         case 'getWhetherThisFrameMatchFrameExpression':
         case 'getWhetherThisWindowMatchWindowExpression':
         case 'isAlertPresent':
         case 'isChecked':
         case 'isConfirmationPresent':
         case 'isEditable':
         case 'isElementPresent':
         case 'isOrdered':
         case 'isPromptPresent':
         case 'isSomethingSelected':
         case 'isTextPresent':
         case 'isVisible':
             return $this->getBoolean($command, $arguments);
             break;
         case 'getCursorPosition':
         case 'getElementHeight':
         case 'getElementIndex':
         case 'getElementPositionLeft':
         case 'getElementPositionTop':
         case 'getElementWidth':
         case 'getMouseSpeed':
         case 'getSpeed':
         case 'getXpathCount':
             $result = $this->getNumber($command, $arguments);
             if ($wait) {
                 $this->doCommand('waitForPageToLoad', array($this->timeout));
             }
             return $result;
             break;
         case 'getAlert':
         case 'getAttribute':
         case 'getBodyText':
         case 'getConfirmation':
         case 'getCookie':
         case 'getEval':
         case 'getExpression':
         case 'getHtmlSource':
         case 'getLocation':
         case 'getLogMessages':
         case 'getPrompt':
         case 'getSelectedId':
         case 'getSelectedIndex':
         case 'getSelectedLabel':
         case 'getSelectedValue':
         case 'getTable':
         case 'getText':
         case 'getTitle':
         case 'getValue':
             $result = $this->getString($command, $arguments);
             if ($wait) {
                 $this->doCommand('waitForPageToLoad', array($this->timeout));
             }
             return $result;
             break;
         case 'getAllButtons':
         case 'getAllFields':
         case 'getAllLinks':
         case 'getAllWindowIds':
         case 'getAllWindowNames':
         case 'getAllWindowTitles':
         case 'getAttributeFromAllWindows':
         case 'getSelectedIds':
         case 'getSelectedIndexes':
         case 'getSelectedLabels':
         case 'getSelectedValues':
         case 'getSelectOptions':
             $result = $this->getStringArray($command, $arguments);
             if ($wait) {
                 $this->doCommand('waitForPageToLoad', array($this->timeout));
             }
             return $result;
             break;
         case 'waitForCondition':
         case 'waitForPopUp':
             if (count($arguments) == 1) {
                 $arguments[] = $this->timeout;
             }
             $this->doCommand($command, $arguments);
             $this->testCase->runDefaultAssertions($command);
             break;
         case 'waitForPageToLoad':
             if (empty($arguments)) {
                 $arguments[] = $this->timeout;
             }
             $this->doCommand($command, $arguments);
             $this->testCase->runDefaultAssertions($command);
             break;
         default:
             $this->stop();
             throw new BadMethodCallException("Method {$command} not defined.");
     }
 }