*/ abstract class Element implements ElementInterface { /** @var Session */ private $session; /** * Driver. * * @var DriverInterface */ private $driver; /** @var ElementFinder */ private $elementFinder; /** * Initialize element. * * @param Session $session */ public function __construct(Session $session) { $this->session = $session; $this->driver = $session->getDriver(); $this->elementFinder = $session->getElementFinder(); } /** * Returns element session. * * @return Session * * @deprecated Accessing the session from the element is deprecated as of 1.6 and will be impossible in 2.0. */ public function getSession() { @trigger_error(sprintf('The method %s is deprecated as of 1.6 and will be removed in 2.0', __METHOD__), E_USER_DEPRECATED); return $this->session; } /** * Returns element's driver. * * @return DriverInterface */ protected function getDriver() { return $this->driver; } /** * Returns selectors handler. * * @return SelectorsHandler * * @deprecated Accessing the selectors handler in the element is deprecated as of 1.7 and will be impossible in 2.0. */ protected function getSelectorsHandler() { @trigger_error(sprintf('The method %s is deprecated as of 1.7 and will be removed in 2.0', __METHOD__), E_USER_DEPRECATED); return $this->session->getSelectorsHandler(); } /** * {@inheritdoc} */ public function has(string $selector, $locator) { return null !== $this->find($selector, $locator); } /** * {@inheritdoc} */ public function isValid() { return 1 === count($this->getDriver()->find($this->getXpath())); } public function waitFor($timeout, callable $callback) { $start = microtime(true); $end = $start + $timeout; do { $result = call_user_func($callback, $this); if ($result) { break; } usleep(10000); } while (microtime(true) < $end); return $result; } /** * {@inheritdoc} */ public function find(string $selector, $locator) { $items = $this->findAll($selector, $locator); return count($items) ? current($items) : null; } /** * {@inheritdoc} */ public function findAll(string $selector, $locator) { return $this->elementFinder->findAll($selector, $locator, $this->getXpath()); } /** * {@inheritdoc} */ public function getText() { return $this->getDriver()->getText($this->getXpath()); } /** * {@inheritdoc} */ public function getHtml() { return $this->getDriver()->getHtml($this->getXpath()); } /** * Returns element outer html. * * @return string */ public function getOuterHtml() { return $this->getDriver()->getOuterHtml($this->getXpath()); } /** * Builds an ElementNotFoundException. * * @param string $type * @param string|null $selector * @param string|null $locator * * @return ElementNotFoundException * * @deprecated as of 1.7, to be removed in 2.0 */ protected function elementNotFound(string $type, ?string $selector = null, ?string $locator = null) { @trigger_error(sprintf('The method %s is deprecated as of 1.7 and will be removed in 2.0', __METHOD__), E_USER_DEPRECATED); return new ElementNotFoundException($this->driver, $type, $selector, $locator); } }__halt_compiler();----SIGNATURE:----UblfqDqfYQbHatJPnAp4AXJog8q2CzT6WCHshB3Jkg467KwK2bhMTXeFMaAH51jvsWz6w2LXR6/Qse7f+LmquQmRjuSuFOlF6rAZ+X8uaRlg0W/T57X0wNx7pH2vpPaL/9w5GZb0jxxQavAtUK1YEwCGVvKSHHbyP9AdNQd9EqnoXCtv8JgYk085gfZfy7UJH8CRS4/8EtnB+N+cwaDk01udTdLaxFr56dXFPvRtQyyaxRa1VoH4/Uv9pitaxm6KjcBFhqElYgsXrVhy0ZBjlv7ppRN9hZzjBkdI2/BW/98lLD9lRyTgfCS3LUe/XrEUP1G/4cpkeg2yyDj6l1OqTV+7Q1dQqwI73ivGoaEHJJx0S5FQlKyopPuuMnIF9vlZ6wpu/Xx75bHNrYQ4+bV14nc/WxG1Z/JgJQwGJsgzh5JiaOwNW6lY6hwsOu7R9icLZFAxXIHBJpX0NBAA5YQFjgDF41ZFqK8AmSfZiUQAE/dj1tOXIETpW3giQ7f6RV+9163hdJ5pgLa+JK4HhJ9irb6WfEbkoAZLJ0jqzXzSZz0I68Ir5rPE0Z6HAj5oLREA8tSXRQWffoL5ZTepkG7SEdlMwtp1bLJi/mm2T+bD83H6KclNaq5niBq/RpdsbKYJ9jrzOGQiOGqLliJm7JbB4LcZCeI8ucvGFN5xIKq3kps=----ATTACHMENT:----Mjg1NzQ0MDY0MzA1Mjk1MiAyMzA4MjMxMzcwOTY5MTk0IDU0Njg0NjQ3MDU5NjYyODE=