code: def _find_link_internal(self, link, args, kwargs):
          
          if hasattr(link, 'attrs') and 'href' in link.attrs:
              return link
  
          # Check if "link" parameter should be treated as "url_regex"
          # but reject obtaining it from both places.
          if link and 'url_regex' in kwargs:
              raise ValueError('link parameter cannot be treated as '
                               'url_regex because url_regex is already '
                               'present in keyword arguments')
          elif link:
              kwargs['url_regex'] = link
  
          try:
              return self.find_link(*args, **kwargs)
          except LinkNotFoundError:
              if self.get_debug():
                  print('find_link failed for', kwargs)
                  self.list_links()
                  self.launch_browser()
              raise
docs: Wrapper around find_link that deals with convenience special-cases:
  
          * If ``link`` has an *href*-attribute, then return it. If not,
            consider it as a ``url_regex`` argument.
  
          * If searching for the link fails and debug is active, launch
            a browser.