code: def select_form(self, selector="form", nr=0):
          
          if isinstance(selector, bs4.element.Tag):
              if selector.name != "form":
                  raise LinkNotFoundError
              self.__state.form = Form(selector)
          else:
              # nr is a 0-based index for consistency with mechanize
              found_forms = self.get_current_page().select(selector,
                                                           limit=nr + 1)
              if len(found_forms) != nr + 1:
                  if self.__debug:
                      print('select_form failed for', selector)
                      self.launch_browser()
                  raise LinkNotFoundError()
              self.__state.form = Form(found_forms[-1])
  
          return self.get_current_form()
docs: Select a form in the current page.
  
          :param selector: CSS selector or a bs4.element.Tag object to identify
              the form to select.
              If not specified, ``selector`` defaults to "form", which is
              useful if, e.g., there is only one form on the page.
              For ``selector`` syntax, see the `.select() method in BeautifulSoup
              <https://www.crummy.com/software/BeautifulSoup/bs4/doc/#css-selectors>`__.
          :param nr: A zero-based index specifying which form among those that
              match ``selector`` will be selected. Useful when one or more forms
              have the same attributes as the form you want to select, and its
              position on the page is the only way to uniquely identify it.
              Default is the first matching form (``nr=0``).
  
          :return: The selected form as a soup object. It can also be
              retrieved later with :func:`get_current_form`.