2016-03-31 38 views
1

目前使用機械化提交某種形式的沒有控制

這是我目前的代碼片段與Python機械化配套名稱:

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

共有10個文本框,我打印使用以下是代碼:

for form in br.forms():             
    print "Form name:", form.name           
    print form 

這是輸出:

<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' 

回答