2013-04-08 4 views
1

J'ai un client de messagerie. Je vérifie les « cases » des e-mails que je dois faire quelque chose (mouvement, dételé, œufs) comme celui-ci en utilisant mécaniser python:Case à cocher mécaniser Python avec liste déroulante soumettre

br.open(login_url) 
br.open(url_1) 
br.select_form(nr=0) 
for i in range(0, len(br.find_control(type="checkbox").items)): 
    if "4" in str(br.find_control(type="checkbox").items[i]): 
     br.find_control(type="checkbox").items[i].selected = False 
    else: 
     br.find_control(type="checkbox").items[i].selected = True 
reponseaa = br.submit() 
print reponseaa 

br.open(url_2) 
br.select_form(nr=2) 
for i in range(0, len(br.find_control(type="checkbox").items)): 
    if "45198" and "4519" in str(br.find_control(type="checkbox").items[i]): 
     br.find_control(type="checkbox").items[i].selected = True 
    else: 
     br.find_control(type="checkbox").items[i].selected = False 
br.form['self'] = ["88"] 
r1 = br.submit() 
print r1 

le problème est avec le bouton d'envoi, ce qui est un menu déroulant, qui ressemble à ceci:

<select name="self"> 
<option value="0">Select an action</option> 
<option value="87">Move</option> 
<option value="88">Delete</option> 
<option value="89">Mark as Important</option> 
</select> 
<input type="submit" name="submit" value="Action!"> 

Comment puis-je sélectionner Supprimer et appuyer sur le bouton Soumettre? Un exemple de code serait génial. Merci.

Répondre

3

Vous devez utiliser form from mechanize:

import mechanize 

br = mechanize.Browser() 
br.open(URL) 
br.select_form(nr=0) 
br.form['self'] = ["88"] 
r = br.submit() 

print r.read() 
+0

Je reçois cette erreur: mechanize._form.ParseError: les formulaires imbriqués. J'ai mis à jour le code de la question pour mieux comprendre ce que je fais. –

+0

C'est parce que vous avez une forme dans une autre. Prenez un butin à cette [question] (http://stackoverflow.com/questions/7135964/submitting-nested-form-with-python-mechanize) – ton1c

+0

C'est vrai. J'en ai un:

et l'autre . Et la sélection et le bouton de soumission sont dans le second. BeutifulSoap ne m'a pas aidé. D'autres idées? –

Questions connexes