Nearsoft\SeleniumClient\By::getStrategy PHP Method

getStrategy() public method

public getStrategy ( )
    public function getStrategy()
    {
        return $this->_strategy;
    }

Usage Example

 /**
  * Gets elements within current page
  * @param By   $locator
  * @param bool $polling
  * @param int  $elementId
  * @throws Exceptions\InvalidSelector
  * @return Nearsoft\SeleniumClient\WebElement[]
  */
 public function findElements(By $locator, $polling = false, $elementId = -1)
 {
     if (strpos($locator->getStrategy(), 'js selector ') === 0) {
         $function = substr($locator->getStrategy(), 12);
         $script = "return typeof window.{$function};";
         $valid = $this->executeScript($script) == 'function';
         $selector = addslashes($locator->getSelectorValue());
         if (!$valid) {
             throw new Exceptions\InvalidSelector('The selectorElement is not defined');
         }
         if ($elementId >= 0) {
             // todo refactor child selection strategy to separate classes
             if (strpos($function, 'document.') === 0) {
                 // assume child.$function($selector)
                 $function = substr($function, 9);
                 $script = sprintf('return arguments[0].%s("%s")', $function, $selector);
             } else {
                 // assume $function($selector, child)
                 $script = sprintf('return %s("%s", arguments[0])', $function, $selector);
             }
             $args = array(array('ELEMENT' => $elementId));
         } else {
             $script = sprintf('return %s("%s")', $function, $selector);
             $args = array();
         }
         $params = array('script' => $script, 'args' => $args);
         $command = new Commands\Command($this, 'execute_script', $params);
         $results = $command->execute();
     } else {
         $params = array('using' => $locator->getStrategy(), 'value' => $locator->getSelectorValue());
         if ($elementId >= 0) {
             $command = new Commands\Command($this, 'elements_in_element', $params, array('element_id' => $elementId));
         } else {
             $command = new Commands\Command($this, 'elements', $params);
         }
         $results = $command->execute();
     }
     $webElements = array();
     if (isset($results['value']) && is_array($results['value'])) {
         foreach ($results['value'] as $element) {
             $webElements[] = new WebElement($this, is_array($element) ? $element['ELEMENT'] : $element);
         }
     }
     return $webElements ?: null;
 }