Nearsoft\SeleniumClient\WebDriver::findElements PHP Метод

findElements() публичный Метод

Gets elements within current page
public findElements ( By $locator, boolean $polling = false, integer $elementId ) : Nearsoft\SeleniumClient\WebElement[]
$locator By
$polling boolean
$elementId integer
Результат 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;
    }