Take the 2-minute tour ×

I'm using mechanize (which uses clientform) for some web crawling in python and since it doesn't support JS, I want to set a value of an unexistent input in a form (the input is generated by JS). How can I do this?

The error is similar to the one you get if you try to execute

from mechanize import Browser
br = Browser()
page = br.open('http://google.com')
br.select_form(nr = 0)
br['unexistent'] = 'hello'
share|improve this question
add comment

1 Answer

up vote 10 down vote accepted

You need to first add the control to the form, and then fixup the form.

br['unexistent'] = 'hello'

This really isn't very well documented, and in the source under fixup() there is the comment:

This method should only be called once, after all controls have been
added to the form.

However, it doesn't look like it does anything too dangerous. Probably at least add the control first before messing with anything else in the form.

share|improve this answer
Thanks, works as a charm –  Fluffy Oct 10 '09 at 20:52
add comment

Your Answer


