没有与Python Mechaniz名称匹配的控件

2024-09-28 21:52:36 发布

您现在位置:Python中文网/ 问答频道 /正文

目前正在使用Mechanize提交一些表单

这是我当前的代码片段:

add_control = br.form.find_control(name='CRN_IN', id='crn_id1')

总共有10个文本框,我使用以下代码打印:

^{pr2}$

这是输出:

  <TextControl(CRN_IN=)>
  <HiddenControl(assoc_term_in=) (readonly)>
  <HiddenControl(start_date_in=) (readonly)>
  <HiddenControl(end_date_in=) (readonly)>
  <HiddenControl(RSTS_IN=WR) (readonly)>

  <TextControl(CRN_IN=)>
  <HiddenControl(assoc_term_in=) (readonly)>
  <HiddenControl(start_date_in=) (readonly)>
  <HiddenControl(end_date_in=) (readonly)>
  <HiddenControl(RSTS_IN=WR) (readonly)>

  <TextControl(CRN_IN=)>
  <HiddenControl(assoc_term_in=) (readonly)>
  <HiddenControl(start_date_in=) (readonly)>
  <HiddenControl(end_date_in=) (readonly)>
  <HiddenControl(RSTS_IN=WR) (readonly)>

  <TextControl(CRN_IN=)>
  <HiddenControl(assoc_term_in=) (readonly)>
  <HiddenControl(start_date_in=) (readonly)>
  <HiddenControl(end_date_in=) (readonly)>
  <HiddenControl(RSTS_IN=WR) (readonly)>

  <TextControl(CRN_IN=)>
  <HiddenControl(assoc_term_in=) (readonly)>
  <HiddenControl(start_date_in=) (readonly)>
  <HiddenControl(end_date_in=) (readonly)>
  <HiddenControl(RSTS_IN=WR) (readonly)>

  <TextControl(CRN_IN=)>
  <HiddenControl(assoc_term_in=) (readonly)>
  <HiddenControl(start_date_in=) (readonly)>
  <HiddenControl(end_date_in=) (readonly)>
  <HiddenControl(RSTS_IN=WR) (readonly)>

  <TextControl(CRN_IN=)>
  <HiddenControl(assoc_term_in=) (readonly)>
  <HiddenControl(start_date_in=) (readonly)>
  <HiddenControl(end_date_in=) (readonly)>
  <HiddenControl(RSTS_IN=WR) (readonly)>

  <TextControl(CRN_IN=)>
  <HiddenControl(assoc_term_in=) (readonly)>
  <HiddenControl(start_date_in=) (readonly)>
  <HiddenControl(end_date_in=) (readonly)>
  <HiddenControl(RSTS_IN=WR) (readonly)>

  <TextControl(CRN_IN=)>
  <HiddenControl(assoc_term_in=) (readonly)>
  <HiddenControl(start_date_in=) (readonly)>
  <HiddenControl(end_date_in=) (readonly)>
  <HiddenControl(RSTS_IN=WR) (readonly)>

如我的代码片段所示,我可以使用id='crn_id1'选择1-10个文本框,一直到id=crn_id10。但是,我的问题是,当我尝试以下操作时:

add_control = br.form.find_control(name='CRN_IN', id='crn_id1')
add_control['CRN_IN'] = '34688' # this indicates a CRN to submit
response = br.submit()

我得到以下错误:

Traceback (most recent call last):
  File "./add2.py", line 37, in <module>
    add_control['CRN_IN'] = '34688'
  File "/usr/local/lib/python2.7/site-packages/mechanize/_form.py", line 1212, in __getattr__
    (self.__class__.__name__, name))
AttributeError: TextControl instance has no attribute '__setitem__'

编辑:

在我将.select_form()添加到find_control行之后,我得到了以下错误:

Traceback (most recent call last):
  File "./add2.py", line 35, in <module>
    add_control = br.form.find_control(name='CRN_IN', id='crn_id1').select_form()
  File "/usr/local/lib/python2.7/site-packages/mechanize/_form.py", line 1212, in __getattr__
    (self.__class__.__name__, name))
AttributeError: TextControl instance has no attribute 'select_form'

Tags: informdatewrstartcontrolendterm