Я пытаюсь использовать mechanize (v0.2.5) для работы с формой на странице, в которой одним из элементов формы является отключенное изображение.Когда я пытаюсь выбрать форму, Mechanize поднимает AttributeError: control 'test' is disabled
, где test
- имя отключенного элемента управления.Например,
br = mechanize.Browser(factory=mechanize.RobustFactory())
br.open("http://whatever...")
br.select_form(nr=0)
Приводит к этой трассировке стека:
br.select_form(nr=0)
File "build\bdist.win32\egg\mechanize\_mechanize.py", line 499, in select_form
File "build\bdist.win32\egg\mechanize\_html.py", line 544, in __getattr__
File "build\bdist.win32\egg\mechanize\_html.py", line 557, in forms
File "build\bdist.win32\egg\mechanize\_html.py", line 237, in forms
File "build\bdist.win32\egg\mechanize\_form.py", line 844, in ParseResponseEx
File "build\bdist.win32\egg\mechanize\_form.py", line 1017, in _ParseFileEx
File "build\bdist.win32\egg\mechanize\_form.py", line 2735, in new_control
File "build\bdist.win32\egg\mechanize\_form.py", line 2336, in __init__
File "build\bdist.win32\egg\mechanize\_form.py", line 1221, in __setattr__
AttributeError: control 'test' is disabled
Изучая исходный код механизации, похоже, что эта ошибка всегда будет возникать при наличии любого элемента формы, которыйоценивается как mechanize.SubmitControl
и не имеет предварительно определенного атрибута value
.Например, следующая форма вызовет ту же ошибку:
<form action="http://whatever" method="POST">
<input name="test" type="submit" disabled="disabled" />
</form>
Я не уверен, должно ли это считаться ошибкой, но в любом случае есть ли обходной путь?Например, есть ли способ изменить HTML-код целевой страницы, чтобы включить отключенные элементы управления, прежде чем я вызову br.select_form()
?
РЕДАКТИРОВАТЬ
У меня естьпредставил исправление для исправления этой проблемы.