Я пытаюсь использовать Mechanize (v0.2.5) для работы с формой на странице, которая имеет отключенное изображение в качестве одной из форм. элементы. Когда я пытаюсь выбрать форму, Mechanize вызывает ошибку AttributeError: элемент управления test отключен
, где 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
и не имеет предварительно определенного атрибута значение
. Например, следующая форма вызовет ту же ошибку:
<form action="http://whatever" method="POST">
<input name="test" type="submit" disabled="disabled" />
</form>
Я не уверен, что это должно считаться ошибкой, но в любом случае есть обходной путь? Например, есть ли способ изменить HTML-код целевой страницы, чтобы включить отключенные элементы управления, прежде чем я вызову br.select_form ()
?
EDIT
Я отправил патч для механизировать, который решает эту проблему.