def __get_valid_form_data_elements(self, soup):
        """Get all valid form input elements.

        Note:
            An element is valid when the value can be updated client-side
            and the element has a name attribute.

        Args:
            soup (obj): The BeautifulSoup form.

        Returns:
            list(obj): Soup elements.

        """

        elements = []

        for element in soup.find_all(["input", "button", "textarea", "select"]):
            if element.has_attr("name"):
                elements.append(element)

        return elements
Get all valid form input elements.

        Note:
            An element is valid when the value can be updated client-side
            and the element has a name attribute.

        Args:
            soup (obj): The BeautifulSoup form.

        Returns:
            list(obj): Soup elements.