Keizer Karel
Keizer Karel

Reputation: 23

MechanicalSoup - Set hidden fields?

Using MechanicalSoup, does one have to set values for hidden fields in a form as well? Or can we just ignore them?

Here is their code in the HTML form:

<input type="hidden" name="details[sid]" />
<input type="hidden" name="details[page_num]" value="1" />
<input type="hidden" name="details[page_count]" value="1" />
<input type="hidden" name="details[finished]" value="0" />
<input type="hidden" name="form_build_id" value="form-OoBDi0_aQvgHZN-Iyc" />
<input type="hidden" name="form_id" value="webform_client_form_337" />
<input type="hidden" name="honeypot_time" value="1519679330|-x8kCHBe6qh7E" />

Upvotes: 1

Views: 276

Answers (2)

John Miller
John Miller

Reputation: 1

You can add your own hidden input name:value pairs using the new_control() method. I've had to do this when the form used javascript to set a hidden element before form submission.

browser.new_control('hidden','name','value')

https://mechanicalsoup.readthedocs.io/en/stable/mechanicalsoup.html#mechanicalsoup.Form.new_control

Upvotes: 0

Matthieu Moy
Matthieu Moy

Reputation: 16647

Hidden fields are typically used internally by the website you're browsing: they are generated with a value, and this value is sent together with non-hidden fields when you submit the form.

MechanicalSoup does what you expect here: it sends the values of hidden fields when you submit the form, so essentially you don't have to care about them: their value will be set by the website you're visiting, and then taken into account by MechanicalSoup just like a normal browser.

You shouldn't need to modify their value, because when using the website with a real browser, the user has no simple way to set a value (that's the point of hiding the fields ...).

Upvotes: 2

Related Questions