web-dev-qa-db-fra.com

Python Mechanize sélectionne un formulaire sans nom

Je tente d'avoir mécanize sélectionner un formulaire à partir d'une page, mais le formulaire en question n'a pas d'attribut "nom" dans le code HTML. Que devrais-je faire? quand j'essaye d'utiliser

br.select_form(name = "")

J'obtiens des erreurs qu'aucun formulaire n'est déclaré avec ce nom, et la fonction nécessite une entrée de nom. Il n'y a qu'un seul formulaire sur la page. Existe-t-il un autre moyen de sélectionner ce formulaire?

29
Mantas Vidutis

Essayer:

br.select_form(nr=0)

sélectionner le premier formulaire

Dans Mechanize source ,

def select_form(self, name=None, predicate=None, <b>nr=None</b>):
    """
    ...
    nr, if supplied, is the sequence number of the form (where 0 is the
    first).
    """
54
YOU

Si vous souhaitez exécuter du code pour plusieurs formulaires, quel que soit leur nom, vous pouvez effectuer une boucle sur chaque formulaire pour que votre script sache quel formulaire fonctionnera ensuite.

currentForm = 0
for form in br.forms(): # Iterate over the forms
        br.select_form(nr = currentForm) # Select the form
        '''
        The code you want to run for every form
        '''
        currentForm += 1 # Add 1 to the current working form so the script knows what form is working next
0
Stam Kaly