Python 机械化为没有 ID 或名称的表单输入添加值

Python Mechanize Add Value to Form Input without ID or Name

以前用过机械化。试图填写一个输入没有名称或 ID 的表单。他们只有一个class。有没有一种方法可以像选择表格时那样通过数字来做到这一点?

<form class="go-action-form">

    <div class="go-action-form-no-auth">
        <input class="firstname" type="text" placeholder="First Name" data-required />
        <input class="lastname"  type="text" placeholder="Last Name"  data-required />
        <input class="email"     type="text" placeholder="Email"      data-required data-validation="email" />
        <input type="submit" class="submit-petition" id="submit-petition-embed-ub39aca073fec49a690c5f3acb4152aae" value="Submit My Name" />
    </div>
</form>

这就是我的。

br = mechanize.Browser()


br.set_handle_equiv(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)


br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)


url = "https://generationopportunity.org/petitions/free-the-food-trucks-in-raleigh/?utm_content=bufferfa496&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer"
br.open(url)

br.select_form(nr = 1)

br.form.set_value(firstname, nr=0)
br.form.set_value(lastname, nr=1)
br.form.set_value(email, nr=2)
br.form.set_value(zip, nr=3)


print br.form.controls[0]
print br.form.controls[1]
print br.form.controls[2]
print br.form.controls[3]

br.submit()

编辑

我现在想出了如何在上面的内容中添加值。现在我只是不知道如何提交它。我试了一下,它说 br.submit() -- AttributeError: 'NoneType' object has no attribute 'click'

谢谢

br.open(url)

# forms = [f for f in br.forms()]
# print forms[1]
# print forms[1].controls[0]

br.select_form(nr = 1)



br.form.set_all_readonly(False)


br.form.set_value(firstname, nr=0)
br.form.set_value(lastname, nr=1)
br.form.set_value(email, nr=2)
br.form.set_value(zip, nr=3)


br.submit()