I want to select a form with mechanize. This is my code:
br = mechanize.Browser()
self.br.open(url)
br.select_form(name="login_form")
The form's code:
<form id="login_form" onsubmit="return Index.login_submit();" method="post" action="index.php?action=login&server_list=1">
But I'm getting this Error:
mechanize._mechanize.FormNotFoundError: no form matching name 'login_form
The problem is that your form does not have a name, only an id, and it is
login_form
. You can use a predicate:(where you se if
f.attrs
has the keyid
and, if so, theid
value is equal tologin_form
). Alternatively, you can pass the number of the form in the page, if you know if it is the first one, the second one etc. For example, the line below selects the first form:a little more readable:
then: