def fill_out(self, data, prefix='', skip_reset=False):
        """
        Fill out ``data`` by dictionary (key is name attribute of inputs). You
        can pass normal Pythonic data and don't have to care about how to use
        API of WebDriver.

        By ``prefix`` you can specify prefix of all name attributes. For example
        you can have inputs called ``client.name`` and ``client.surname`` -
        then you will pass to ``prefix`` string ``"client."`` and in dictionary
        just ``"name"``.

        Option ``skip_reset`` is for skipping reset, so it can go faster. For
        example for multiple selects it calls ``deselect_all`` first, but it need
        to for every option check if it is selected and it is very slow for
        really big multiple selects. If you know that it is not filled, you can
        skip it and safe in some cases up to one minute! Also same with text
        inputs, but first is called ``clear``.

        Example:

        .. code-block:: python

            driver.get_elm('formid').fill_out({
                'name': 'Michael',
                'surname': 'Horejsek',
                'age': 24,
                'enabled': True,
                'multibox': ['value1', 'value2']
            }, prefix='user_')

        .. versionchanged:: 2.2
            ``turbo`` renamed to ``skip_reset`` and used also for common elements
            like text inputs or textareas.
        """
        for elm_name, value in data.items():
            FormElement(self, prefix + elm_name).fill_out(value, skip_reset)