original_docstring: 
          Finds first element which matches selector.
  
          :param selector: an element selector
          :return: the first element which matches selector, None if no element matches
          :raise CrawlerNotRunningError: if the crawler is not running
          :raise NoSuchElementError: if there is no element matching selector
          
docstring: Finds first element which matches selector.
docstring_tokens: Finds first element which matches selector .
code: def find_element(self, selector: str) -> Optional[Element]:
          """
          Finds first element which matches selector.
  
          :param selector: an element selector
          :return: the first element which matches selector, None if no element matches
          :raise CrawlerNotRunningError: if the crawler is not running
          :raise NoSuchElementError: if there is no element matching selector
          """
  
          self._check_if_crawler_running()
  
          element_handle = syncer.sync(self._page.querySelector(selector))
          return Element(element_handle) if element_handle else None
code_tokens: def find_element ( self , selector : str ) -> Optional [ Element ] : self . _check_if_crawler_running ( ) element_handle = syncer . sync ( self . _page . querySelector ( selector ) ) return Element ( element_handle ) if element_handle else None
short_docstring: Finds first element which matches selector.
short_docstring_tokens: Finds first element which matches selector .
comment: """
          Finds first element which matches selector.
  
          :param selector: an element selector
          :return: the first element which matches selector, None if no element matches
          :raise CrawlerNotRunningError: if the crawler is not running
          :raise NoSuchElementError: if there is no element matching selector
          """