diff --git a/dev-requirements.txt b/dev-requirements.txt index 640df0d..dc2ee46 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -1,7 +1,7 @@ coverage coveralls docutils -flake8 +flake8==2.6.2 mock nose sphinx diff --git a/robobrowser/forms/fields.py b/robobrowser/forms/fields.py index c6ddeb3..34c23bd 100644 --- a/robobrowser/forms/fields.py +++ b/robobrowser/forms/fields.py @@ -57,6 +57,9 @@ class Submit(Input): pass +class Button(Input): + pass + class FileInput(BaseField): @BaseField.value.setter diff --git a/robobrowser/forms/form.py b/robobrowser/forms/form.py index 00b7222..cc3ce7c 100644 --- a/robobrowser/forms/form.py +++ b/robobrowser/forms/form.py @@ -13,7 +13,7 @@ from .. import exceptions -_tags = ['input', 'textarea', 'select'] +_tags = ['input', 'button', 'textarea', 'select'] _tag_ptn = re.compile( '|'.join(_tags), re.I @@ -53,6 +53,11 @@ def _parse_field(tag, tags): checkboxes = _group_flat_tags(tag, tags) return fields.Checkbox(checkboxes) return fields.Input(tag) + if tag_type == 'button': + tag_type = tag.get('type', 'submit').lower() + if tag_type == 'submit': + return fields.Submit(tag) + return fields.Button(tag) if tag_type == 'textarea': return fields.Textarea(tag) if tag_type == 'select': diff --git a/tests/test_forms.py b/tests/test_forms.py index 51128a8..01e86b9 100644 --- a/tests/test_forms.py +++ b/tests/test_forms.py @@ -60,12 +60,14 @@ def setUp(self): +