回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我是一个机械化的新手,也不是最高级的python用户,但是我想自动化一个任务,在这个任务中我想给一个网页一个输入。现在的问题是,“提交”按钮没有分配给它的控件名。所以我做了一点研究,找到了一种方法来给这个表单设置一个值。但要做到这一点,我必须访问我想要赋值的特定表单。所以我的代码是这样的:</p>
<pre><code>forms = [f for f in br.forms()]
print forms[0].controls[0].name
</code></pre>
<p>我只是想我可以通过写<code>forms[x]</code>来访问表单,然后类似于:</p>
^{pr2}$
<p>我得到的错误是:</p>
<pre><code> forms[54].set_value("VALUE",nr=100)
IndexError: list index out of range
</code></pre>
<p>这可能是一个有点愚蠢的问题,可能是因为我并不真正理解我正在使用的功能,但由于没有真正的纪录片,我真的很感谢你的一句帮助。在</p>
<p>附言:我可以用打印所有的表格</p>
<pre><code>for f in br.forms():
print f
</code></pre>
<p>带输出:</p>
<pre><code> <CheckboxControl(lookup=[yes])>
<TextControl(fld=NoName)>
<TextControl(pixemail=)>
<IgnoreControl(<None>=<None>)>
<TextControl(ra=00 00 00.0)>
<TextControl(dec=00 00 00.0)>
<SelectControl(equinox=[*J2000.0, B1950.0])>
<TextControl(offra=0.0)>
<TextControl(offdec=0.0)>
<TextControl(epoch=2000.0)>
<SubmitControl(<None>= Retrieve Data ) (readonly)>
<RadioControl(cextract=[*rect, circle])>
<TextControl(rawid=10.0)>
<TextControl(decwid=10.0)>
<SelectControl(wunits=[Degrees, *Minutes, Seconds])>
<TextControl(cirrad=10.0)>
<SelectControl(cat=[UCAC 2, UCAC 3, NOMAD, *USNO B1.0, USNO A2.0, ACT])>
<SelectControl(surims=[None, *All Surveys, POSS-I (103aO, 103aE), POSS-II (IIIaJ, IIIaF, IV-N), SOUTH, AAO-R, POSS-IO, POSS-IE, POSS-IIJ, POSS-IIF, POSS-IIN, SRC-J, SERC-EJ, ESO-R, SERC-ER])>
<CheckboxControl(getcat=[*yes])>
<CheckboxControl(getfin=[*yes])>
<CheckboxControl(pixflg=[yes])>
<CheckboxControl(colbits=[All, *cb_id, *cb_altid, *cb_ra, *cb_sigra, cb_mep, *cb_mura, cb_muprob, *cb_smura, cb_sfitra, *cb_fitpts, cb_err, *cb_flg, *cb_mag, cb_smag, *cb_mflg, *cb_fldid, *cb_sg, cb_xres, cb_pltidx, *cb_xi, *cb_dstctr, *cb_gall])>
<RadioControl(skey=[*ra, dec, sigra, sigdec, mep, mura, mudec, muprob, smura, smudec, sfitra, sfitdec, fitpts, err, flg, mag, smag, mflg, fldid, sg, xres, yres, pltidx, clr, sigpos, mutot, sigmu, xi, eta, dstctr, gall, galb])>
<SelectControl(slf=[*hh/dd mm ss, hh/dd:mm:ss, hh.hhh/dd.ddd, ddd.ddd/dd.ddd])>
<TextControl(minnpts=0)>
<TextControl(maxnpts=10)>
<SelectControl(clr=[B1, R1, B2, *R2, I2, B, V, R, J, H, K])>
<TextControl(bri=0)>
<TextControl(fai=100)>
<SelectControl(clr0m1A=[B1, R1, *B2, R2, I2, B, V, R, J, H, K])>
<SelectControl(clr0m1B=[B1, R1, B2, *R2, I2, B, V, R, J, H, K])>
<TextControl(bmrmin=-100)>
<TextControl(bmrmax=100)>
<TextControl(minposnerr=0.0)>
<TextControl(maxposnerr=10000.0)>
<TextControl(mumin=0.0)>
<TextControl(mumax=10000.0)>
<TextControl(minmuerr=0.0)>
<TextControl(maxmuerr=10000.0)>
<TextControl(minsep=0.0)>
<HiddenControl(minmagerr=0.0) (readonly)>
<HiddenControl(maxmagerr=1.0) (readonly)>
<SelectControl(opstars=[Yes, *No])>
<SelectControl(whorbl=[Light Stars/Dark Sky, *Dark Stars/Light Sky])>
<SelectControl(pixgraph=[Progressive JPEG, *JPEG, GIF, PDF, Large JPEG (1 Survey Only), Large GIF (1 Survey Only), PS (1 Survey Only)])>
<SelectControl(pixfits=[Yes, *No])>
<SelectControl(ori=[NE - North Up, East Right, *NW - North Up, East Left, SE - North Down, East Right, SW - North Down, East Left, EN - East Up, North Right, ES - East Up, North Left, WN - East Down, North Right, WS - East Down, North Left])>
<SelectControl(tck=[N and E marks, *Tick Marks, Grid Lines])>
<SelectControl(starlbl=[Yes, *No])>
<SelectControl(cmrk=[*None, 5.0 sec Box, 10.0 sec Box, 30.0 sec Box, 1.0 min Box, 2.0 min Box, 5.0 min Box, 10.0 min Box, 5.0 sec Circle, 10.0 sec Circle, 30.0 sec Circle, 1.0 min Circle, 2.0 min Circle, 5.0 min Circle, 10.0 min Circle])>
<TextControl(aobj=none)>
<SelectControl(pcl=[*P - Points, L - Points + Labels, C - Connected Points, A - Connected Points + Labels])>
<TextareaControl(atbl= )>
<IgnoreControl(<None>=<None>)>
<SubmitControl(<None>= Retrieve Data ) (readonly)>
<SelectControl(gzf=[*Yes, No])>
<SelectControl(cftype=[*ASCII, XML/VO])>>
</code></pre>
<p>我想弄到的是<code><SubmitControl(<None>=Retrieve Data ) (readonly)></code>,这是从下至上数的第三个。在</p>