我想填写一个HTML表单,我正在使用python的mechanize模块。 我的HTML代码就像复选框和下拉列表那样:
<div id="post_cd">
<input role="checkbox" id="cd_info" class="cbox" type="checkbox">
<span class="s-iso" style="display:none"></div>
<label for="type" id="cdtype" class="cd" style="width:60px;margin:1px;float:left;text-align:right;">CD type:</label>
<select id='cdtype' class=" ui-iso" style="width:100px;margin:1px;float:left;">
<option value="CD1">Error1</option>
<option value="CD2">Error1</option>
<option value="CD3">Error2</option>
</select>
我尝试了以下但却收到错误:
表示复选框:form.find_control("cd_info").items[0].selected = True
下拉列表:form['cdtype']= ['Error1']
错误:
raise ControlNotFoundError("no control matching "+description)
mechanize._form.ControlNotFoundError: no control matching name 'cd_info'
raise ControlNotFoundError("no control matching "+description)
mechanize._form.ControlNotFoundError: no control matching name 'cdtype'
答案 0 :(得分:0)
HTML代码中没有<form>
。因此,form
可能并未指向您在调用find_control
或订阅运算符时提供的HTML代码周围的元素。
您可以尝试打印表单的文本,以确保您正在查看正确的内容:
print form