original_docstring: 
          Waits until element which matches selector appears on page.
  
          :param selector: an element selector
          :param visible: wait for element to be present in DOM and to be
                          visible; i.e. to not have display: none or visibility: hidden
                          CSS properties, defaults to False
          :param hidden: wait for element to not be found in the DOM or to
                         be hidden, i.e. have display: none or visibility: hidden CSS
                         properties, defaults to False
          :param timeout: maximum time to wait for (in milliseconds), defaults to 30000
          :raise WaitTimeoutError: if the timeout is exceeded
          
docstring: Waits until element which matches selector appears on page.
docstring_tokens: Waits until element which matches selector appears on page .
code: def wait_for_selector(
              self,
              selector: str,
              visible: bool = False,
              hidden: bool = False,
              timeout: int = 30000
      ) -> None:
          """
          Waits until element which matches selector appears on page.
  
          :param selector: an element selector
          :param visible: wait for element to be present in DOM and to be
                          visible; i.e. to not have display: none or visibility: hidden
                          CSS properties, defaults to False
          :param hidden: wait for element to not be found in the DOM or to
                         be hidden, i.e. have display: none or visibility: hidden CSS
                         properties, defaults to False
          :param timeout: maximum time to wait for (in milliseconds), defaults to 30000
          :raise WaitTimeoutError: if the timeout is exceeded
          """
  
          self._check_if_crawler_running()
  
          # WaitTask class is not compatible with syncer, this async method is a workaround
          async def wait_for_selector() -> None:
              await self._page.waitForSelector(selector, {'visible': visible, 'hidden': hidden, 'timeout': timeout})
  
          try:
              syncer.sync(wait_for_selector())
          except pyppeteer.errors.TimeoutError:
              raise WaitTimeoutError(timeout, selector)
code_tokens: def wait_for_selector ( self , selector : str , visible : bool = False , hidden : bool = False , timeout : int = 30000 ) -> None : self . _check_if_crawler_running ( ) async def wait_for_selector ( ) -> None : await self . _page . waitForSelector ( selector , { 'visible' : visible , 'hidden' : hidden , 'timeout' : timeout } ) try : syncer . sync ( wait_for_selector ( ) ) except pyppeteer . errors . TimeoutError : raise WaitTimeoutError ( timeout , selector )
short_docstring: Waits until element which matches selector appears on page.
short_docstring_tokens: Waits until element which matches selector appears on page .
comment: """
          Waits until element which matches selector appears on page.
  
          :param selector: an element selector
          :param visible: wait for element to be present in DOM and to be
                          visible; i.e. to not have display: none or visibility: hidden
                          CSS properties, defaults to False
          :param hidden: wait for element to not be found in the DOM or to
                         be hidden, i.e. have display: none or visibility: hidden CSS
                         properties, defaults to False
          :param timeout: maximum time to wait for (in milliseconds), defaults to 30000
          :raise WaitTimeoutError: if the timeout is exceeded
          """$SEP$# WaitTask class is not compatible with syncer, this async method is a workaround