2016-09-17 23 views
1

我正在努力检查一个简单的复选框robobrowser放弃邮递员中的所有邮件。使用robobrowser设置一个普通的复选框

form['discardalldefersp'].options 

返回['0'],既不

form['discardalldefersp'].value= True 

也不

form['discardalldefersp'].value = '1' 

递送的结果。我只收到'ValueError:选项1未找到字段'

如何设置复选框?

我对整个事情的代码如下:

import robobrowser 

pw = '<password>' 

browser = RoboBrowser(history=True) 
browser.open('<mailmanlist>') 

form = browser.get_form(action='/mailman/admindb/<listname>') 

form['adminpw'].value = pw 
browser.submit_form(form) 

form = browser.get_form(action='<listurl>') 

form['discardalldefersp'].value = '1' 

的HTML如下(德国):

<HTML> 
<HEAD> 
<LINK REL="SHORTCUT ICON" HREF="/images/mailman/mm-icon.png"> 
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<TITLE>Administrative Datenbank</TITLE> 
</HEAD> 
<BODY bgcolor="white" 
dir="ltr"> 
<h2>Administrative Anfragen für Liste: <em>foobar</em></h2><!-- based on en 2.0/StD--> 
Diese Seite zeigt eine &Uuml;bersicht der gegenw&auml;rtigen administrativen 
Anfragen f&uuml;r die <a href="https://lists.server.de/mailman/admin/foobar"><em>foobar</em> 
Mailingliste</a>, die auf Ihre Genehmigung warten. Als erstes sehen Sie eine 
Liste allf&auml;lliger Abonnement- und K&uuml;ndigungsanfragen, gefolgt von 
eventuellen Nachrichten, die Ihre Genehmigung erfordern, und daher gestoppt 
wurden. 

<p>Bitte w&auml;hlen Sie f&uuml;r jede Anfrage die zu treffende Ma&szlig;nahme 
aus, und klicken Sie auf den <b>Alle Daten senden</b> Knopf, wenn sie fertig 
sind. Eine <a href="https://lists.server.de/mailman/admindb/foobar?details=instructions">detaillierte Anleitung</a> ist ebenfalls 
verf&uuml;gbar. 

<p>Sie k&ouml;nnen sich auch <a href="https://lists.server.de/mailman/admindb/foobar?details=all">Details</a> zu allen 
gestoppten Nachrichten anzeigen lassen. 

<FORM action="https://lists.server.de/mailman/admindb/foobar" method="POST" > 
<center> 
<INPUT name="submit" type="SUBMIT" value="Alle Daten senden" ></center> 
<center> 
<INPUT name="discardalldefersp" type="CHECKBOX" value="0" >&nbsp;Alle mit  <em>Verschieben</em> markierten Nachrichten verwerfen. 
</center> 
<hr> 
<center> 

<h2>Zurückgehaltene Nachrichten</h2></center> 

... 

</FORM> 

enter image description here

+0

完成后,我添加了代码。 –

回答

1

我有一个类似的错误消息一个单选按钮。尝试的“1”的选项或真添加到Robobrowser场discardalldefersp,看看它是否解决了这个问题:

form['discardalldefersp'].options = ['1'] 
form['discardalldefersp'].value = '1' 

或者与真正的选项:

form['discardalldefersp'].options = [True] 
form['discardalldefersp'].value = True 

这解决了我的得到错误信息但表单不能正常工作,但我认为这是该网站不能正常工作。