以机械化形式选择未命名的文本字段(python)

时间:2011-01-24 22:22:36

标签: python forms automation mechanize

所以我正在制作一个程序,使用mechanize和python将街道地址批量转换为gps坐标。这是我第一次使用机械化。我可以在页面上选择表单(“form2”)。但是表单中的文本框没有名称。如何选择文本框以便机械化可以输入我的文本?我已经尝试通过它的id来选择它。这不起作用。

br.select_form("Form2") #works as far as i know
br.form["search"] = ["1 lakewood drive, christchurch"] #this is the field that i cannot select

以下是该网站的源代码。

<form name="Form2" >
or  Type an <b>Address</b>
<input id="search" size="40" type="text" value=""  >
<input type="button" onClick="EnteredAddress();" value="Enter" />
</form>

任何帮助都会非常感激。

2 个答案:

答案 0 :(得分:3)

form.find_control(id="search")

答案 1 :(得分:1)

FWIW我通过使用lazy1的上述答案解决了这个问题,除了我在使用find_control方法后尝试分配值。当然,由于分配,我没有工作,我更深入地研究了方法并找到了 setattr (),这对于为字段分配值非常有用。

不起作用

br.form.find_control(id="field id here") = "new value here"

将起作用

br.form.find_control(id="field id here").__setattr__("value", "new value here")