You are here

class BasePhantomJSDriver in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/jcalderonzumba/mink-phantomjs-driver/src/BasePhantomJSDriver.php \Zumba\Mink\Driver\BasePhantomJSDriver

Class BasePhantomJSDriver @package Zumba\Mink\Driver

Hierarchy

Expanded class hierarchy of BasePhantomJSDriver

File

vendor/jcalderonzumba/mink-phantomjs-driver/src/BasePhantomJSDriver.php, line 14

Namespace

Zumba\Mink\Driver
View source
class BasePhantomJSDriver extends CoreDriver {

  /** @var  Session */
  protected $session;

  /** @var  Browser */
  protected $browser;

  /** @var  string */
  protected $phantomHost;

  /** @var  \Twig_Loader_Filesystem */
  protected $templateLoader;

  /** @var  \Twig_Environment */
  protected $templateEnv;

  /**
   * Instantiates the driver
   * @param string $phantomHost browser "api" oriented host
   * @param string $templateCache where we are going to store the templates cache
   */
  public function __construct($phantomHost, $templateCache = null) {
    $this->phantomHost = $phantomHost;
    $this->browser = new Browser($phantomHost);
    $this->templateLoader = new \Twig_Loader_Filesystem(realpath(__DIR__ . '/Resources/Script'));
    $this->templateEnv = new \Twig_Environment($this->templateLoader, array(
      'cache' => $this
        ->templateCacheSetup($templateCache),
      'strict_variables' => true,
    ));
  }

  /**
   * Sets up the cache template location for the scripts we are going to create with the driver
   * @param $templateCache
   * @return string
   * @throws DriverException
   */
  protected function templateCacheSetup($templateCache) {
    $cacheDir = $templateCache;
    if ($templateCache === null) {
      $cacheDir = sys_get_temp_dir() . DIRECTORY_SEPARATOR . "jcalderonzumba" . DIRECTORY_SEPARATOR . "phantomjs";
      if (!file_exists($cacheDir)) {
        mkdir($cacheDir, 0777, true);
      }
    }
    if (!file_exists($cacheDir)) {
      throw new DriverException("Template cache {$cacheDir} directory does not exist");
    }
    return $cacheDir;
  }

  /**
   * Helper to find a node element given an xpath
   * @param string $xpath
   * @param int    $max
   * @returns int
   * @throws DriverException
   */
  protected function findElement($xpath, $max = 1) {
    $elements = $this->browser
      ->find("xpath", $xpath);
    if (!isset($elements["page_id"]) || !isset($elements["ids"]) || count($elements["ids"]) !== $max) {
      throw new DriverException("Failed to get elements with given {$xpath}");
    }
    return $elements;
  }

  /**
   * {@inheritdoc}
   * @param Session $session
   */
  public function setSession(Session $session) {
    $this->session = $session;
  }

  /**
   * @return Browser
   */
  public function getBrowser() {
    return $this->browser;
  }

  /**
   * @return \Twig_Environment
   */
  public function getTemplateEnv() {
    return $this->templateEnv;
  }

  /**
   * Returns a javascript script via twig template engine
   * @param $templateName
   * @param $viewData
   * @return string
   */
  public function javascriptTemplateRender($templateName, $viewData) {

    /** @var $templateEngine \Twig_Environment */
    $templateEngine = $this
      ->getTemplateEnv();
    return $templateEngine
      ->render($templateName, $viewData);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
BasePhantomJSDriver::$browser protected property @var Browser
BasePhantomJSDriver::$phantomHost protected property @var string
BasePhantomJSDriver::$session protected property @var Session Overrides CoreDriver::$session
BasePhantomJSDriver::$templateEnv protected property @var \Twig_Environment
BasePhantomJSDriver::$templateLoader protected property @var \Twig_Loader_Filesystem
BasePhantomJSDriver::findElement protected function Helper to find a node element given an xpath
BasePhantomJSDriver::getBrowser public function
BasePhantomJSDriver::getTemplateEnv public function
BasePhantomJSDriver::javascriptTemplateRender public function Returns a javascript script via twig template engine
BasePhantomJSDriver::setSession public function Overrides CoreDriver::setSession
BasePhantomJSDriver::templateCacheSetup protected function Sets up the cache template location for the scripts we are going to create with the driver
BasePhantomJSDriver::__construct public function Instantiates the driver
CoreDriver::attachFile public function Attaches file path to file field located by it's XPath query. Overrides DriverInterface::attachFile 2
CoreDriver::back public function Moves browser backward 1 page. Overrides DriverInterface::back 1
CoreDriver::blur public function Removes focus from element. Overrides DriverInterface::blur 1
CoreDriver::check public function Checks checkbox by it's XPath query. Overrides DriverInterface::check 1
CoreDriver::click public function Clicks button or link located by it's XPath query. Overrides DriverInterface::click 1
CoreDriver::doubleClick public function Double-clicks button or link located by it's XPath query. Overrides DriverInterface::doubleClick
CoreDriver::dragTo public function Drag one element onto another. Overrides DriverInterface::dragTo 1
CoreDriver::evaluateScript public function Evaluates JS script. Overrides DriverInterface::evaluateScript
CoreDriver::executeScript public function Executes JS script. Overrides DriverInterface::executeScript
CoreDriver::find public function Finds elements with specified XPath query. Overrides DriverInterface::find 1
CoreDriver::findElementXpaths protected function Finds elements with specified XPath query. 1
CoreDriver::focus public function Brings focus to element. Overrides DriverInterface::focus 1
CoreDriver::forward public function Moves browser forward 1 page. Overrides DriverInterface::forward 1
CoreDriver::getAttribute public function Returns element's attribute by it's XPath query. Overrides DriverInterface::getAttribute 2
CoreDriver::getContent public function Returns last response content. Overrides DriverInterface::getContent 1
CoreDriver::getCookie public function Returns cookie by name. Overrides DriverInterface::getCookie 1
CoreDriver::getCurrentUrl public function Returns current URL address. Overrides DriverInterface::getCurrentUrl 1
CoreDriver::getHtml public function Returns element's inner html by it's XPath query. Overrides DriverInterface::getHtml 1
CoreDriver::getOuterHtml public function Returns element's outer html by it's XPath query. Overrides DriverInterface::getOuterHtml 1
CoreDriver::getResponseHeaders public function Returns last response headers. Overrides DriverInterface::getResponseHeaders 1
CoreDriver::getScreenshot public function Capture a screenshot of the current window. Overrides DriverInterface::getScreenshot
CoreDriver::getStatusCode public function Returns last response status code. Overrides DriverInterface::getStatusCode 1
CoreDriver::getTagName public function Returns element's tag name by it's XPath query. Overrides DriverInterface::getTagName 2
CoreDriver::getText public function Returns element's text by it's XPath query. Overrides DriverInterface::getText 1
CoreDriver::getValue public function Returns element's value by it's XPath query. Overrides DriverInterface::getValue 1
CoreDriver::getWindowName public function Return the name of the currently active window. Overrides DriverInterface::getWindowName
CoreDriver::getWindowNames public function Return the names of all open windows. Overrides DriverInterface::getWindowNames
CoreDriver::isChecked public function Checks whether checkbox or radio button located by it's XPath query is checked. Overrides DriverInterface::isChecked 1
CoreDriver::isSelected public function Checks whether select option, located by it's XPath query, is selected. Overrides DriverInterface::isSelected 1
CoreDriver::isStarted public function Checks whether driver is started. Overrides DriverInterface::isStarted 1
CoreDriver::isVisible public function Checks whether element visible located by it's XPath query. Overrides DriverInterface::isVisible 1
CoreDriver::keyDown public function Pressed down specific keyboard key. Overrides DriverInterface::keyDown
CoreDriver::keyPress public function Presses specific keyboard key. Overrides DriverInterface::keyPress
CoreDriver::keyUp public function Pressed up specific keyboard key. Overrides DriverInterface::keyUp
CoreDriver::maximizeWindow public function Maximizes the window if it is not maximized already. Overrides DriverInterface::maximizeWindow
CoreDriver::mouseOver public function Simulates a mouse over on the element. Overrides DriverInterface::mouseOver
CoreDriver::reload public function Reloads current page. Overrides DriverInterface::reload 1
CoreDriver::reset public function Resets driver state. Overrides DriverInterface::reset 1
CoreDriver::resizeWindow public function Set the dimensions of the window. Overrides DriverInterface::resizeWindow
CoreDriver::rightClick public function Right-clicks button or link located by it's XPath query. Overrides DriverInterface::rightClick
CoreDriver::selectOption public function Selects option from select field or value in radio group located by it's XPath query. Overrides DriverInterface::selectOption 1
CoreDriver::setBasicAuth public function Sets HTTP Basic authentication parameters. Overrides DriverInterface::setBasicAuth 2
CoreDriver::setCookie public function Sets cookie. Overrides DriverInterface::setCookie 1
CoreDriver::setRequestHeader public function Sets specific request header on client. Overrides DriverInterface::setRequestHeader 1
CoreDriver::setValue public function Sets element's value by it's XPath query. Overrides DriverInterface::setValue 1
CoreDriver::start public function Starts driver. Overrides DriverInterface::start 1
CoreDriver::stop public function Stops driver. Overrides DriverInterface::stop 1
CoreDriver::submitForm public function Submits the form. Overrides DriverInterface::submitForm 1
CoreDriver::switchToIFrame public function Switches to specific iFrame. Overrides DriverInterface::switchToIFrame 1
CoreDriver::switchToWindow public function Switches to specific browser window. Overrides DriverInterface::switchToWindow
CoreDriver::uncheck public function Unchecks checkbox by it's XPath query. Overrides DriverInterface::uncheck 1
CoreDriver::visit public function Visit specified URL. Overrides DriverInterface::visit 1
CoreDriver::wait public function Waits some time or until JS condition turns true. Overrides DriverInterface::wait