*/ 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:----UYUPXnHQ+0SGsHkOqpm8S8WosPhO2f+sYPMtEozDeJjnUsEaPhTOePvPEN+Oiw6OATRwBp12UiWqlktftfmr0jijZCGClJFRONT9X1LF+Ql5DDDNFjj6jB6UAENclKY7TgqH4TCjWpX5Z3YhgW0vAicYDIVcAnw7UIoGD4qRux7cFytiD6CFdw8TnspG7EfqfIP9PcoM1kCYDknk7hB28m9WFcP5YM2gsfWAtzpzO1rH4uLm7DEEcl2omzgjL8PwdgNyS6un3Vg7e/DYUCJAqCAUQrk8M7hJY9X5P9aooQBKnUmzbEAJRkQ5cC7dNjJczsa8qF6A8Su0YAHeXjTKA9mkYGH5Y15nw1qLIGXr0aag710oL7QBtw542eFN5ce7v7m7UQFokgbk6WwSUksJKiZ8tIxxgFYq59zwehkSKE3kXhJAK8+4pHTxMUJpH5RbVpjU2uPjokhP3z9GTPcQBa0Ih5FyKkAIG4NbMrPnvcES+fu5CjmHI61s2/O4UB9Hf84OL2VsZeEqFAseUvWOntQff5bU4OM/K9T5rTAXsTEcgS6fM4I5z6rpVnyU40Mb9z0MmoMGplI0S+8G2m2IKMFTZ6P2CqMgv0756RA5+EeBJLFvmzbLlKZ8WMGnZjMQIHqXfs6n0fY8WyUi3ttw/XiaBkcSu4Tt26zFWAw7vpU=----ATTACHMENT:----MjI3Mjc5NDgzNjQwNzk2OSAyNzMyMjY4NzAyMDE3OTE0IDkxNTExODY0MjczMTExMDA=