mechanize python click a button

nunos picture nunos · Nov 27, 2009 · Viewed 23.9k times · Source

I have a form with <input type="button" name="submit" /> button and would like to be able to click it.

I have tried mech.form.click("submit") but that gives the following error:

ControlNotFoundError: no control matching kind 'clickable', id 'submit'

mech.submit() also doesn't work since its type is button and not submit.

Any ideas? Thanks.

Answer

nosklo picture nosklo · Nov 27, 2009

clicking a type="button" in a pure html form does nothing. For it to do anything, there must be javascript involved.

And mechanize doesn't run javascript.

So your options are:

  • Read the javascript yourself and simulate with mechanize what it would be doing
  • Use spidermonkey to run the javascript code

I'd do the first one, since using spidermonkey seems hard and probably not worth it.