Mechanize не может читать форму с SubmitControl, который отключен и не имеет значения

Я пытаюсь использовать 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

Я отправил патч для механизировать, который решает эту проблему.

8
задан Abiel 12 February 2012 в 21:31
поделиться