'Can I add non existing field to form with WebTest?
I am testing a form using WebTest. However, somes fields are created dynamically using JS, and thus these fields are not in the Form. I have an error when I try to set one of these fields:
>>> resp.form['new_field'] = 'value'
or
>>> resp.form.set('new_field', 'value')
or
>>> resp.form.set('new_field', 'value', index=0)
or
>>> resp.form['new_field'].force_value('value')
*** AssertionError: No field by the name 'new_field' found
Is there a way to create a field ?
Solution 1:[1]
Updated @lambacck code to handle file fields as well.
pos is required on Python3 as well.
from webtest.forms import Text, File
from webtest import Upload
def add_dynamic_field(form, name, value):
field_cls = File if isinstance(value, Upload) else Text
field = field_cls(form, tag='input', name=name, value=value, pos=999)
form.fields[name] = [field]
form.field_order.append((name, field))
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
