public function findElement(string $selector, int $timeout = 5, TraversableElement $baseElement = null): NodeElement
    {
        $baseElement = $baseElement ?? $this->getSession()->getPage();

        try {
            return $this->waitUntil($timeout,
                function () use ($selector, $baseElement) {
                    return $baseElement->find('css', $selector);
                });
        } catch (Exception $e) {
            throw new ElementNotFoundException($this->getSession()->getDriver(), null, 'css', $selector);
        }
    }