find(sprintf($this->openNode, $element), Locator::SELECTOR_XPATH); if ($element->isVisible()) { return; } $plusButton = $this->find(sprintf($this->closedNode, $element) . $this->input, Locator::SELECTOR_XPATH); if ($plusButton->isVisible()) { $plusButton->click(); $this->waitLoadChildren($element); } } /** * Get element label. * * @param ElementInterface $element * @return string */ protected function getElementLabel(ElementInterface $element) { return trim($element->getText()); } /** * Get structure. * * @param int|null $level * @return array */ public function getStructure($level = null) { $nodesSelector = $this->getNodesSelector($level); $nodes = $this->getElements($nodesSelector, Locator::SELECTOR_XPATH); return $this->prepareValues($nodes); } /** * Get nodes selector. * * @param int|null $level * @return string */ protected function getNodesSelector($level) { $selector = $this->rootElement; if ($level !== null) { for ($i = 1; $i < $level; $i++) { $selector .= $this->level; } $selector .= $this->selectedLabelsByLevel; } else { $selector .= $this->selectedLabels; } return $selector; } }