code: def wait_until_clickable(self, timeout=None):
          
          try:
              self.utils.wait_until_element_clickable(self, timeout)
          except TimeoutException as exception:
              parent_msg = " and parent locator '{}'".format(self.parent) if self.parent else ''
              msg = "Page element of type '%s' with locator %s%s not found or is not clickable after %s seconds"
              timeout = timeout if timeout else self.utils.get_explicitly_wait()
              self.logger.error(msg, type(self).__name__, self.locator, parent_msg, timeout)
              exception.msg += "\n  {}".format(msg % (type(self).__name__, self.locator, parent_msg, timeout))
              raise exception
          return self
docs: Search element and wait until it is clickable
  
          :param timeout: max time to wait
          :returns: page element instance