Найти - Пользователи
Полная версия: Grab и RadioButton
Начало » Web » Grab и RadioButton
1
Griffon
Доброго времени суток.

Понадобилось мне автоматом заполнять форму на одном малоизвестном сайте. Решил использовать Grab, т.к. мелькал перед глазами периодически. Тут и хранение сессий, и парсинг, и заполнение форм.

Возникла проблема. Проблема называется Disabled RadioВutton. В форме есть отключенный радио-селектор. При вызове grab_obj.submit() появляется ошибка:
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
g.grab.submit()
File "C:\Python27\lib\site-packages\grab-0.4.7-py2.7.egg\grab\ext\form.py", line 232, in submit
post = self.form_fields()
File "C:\Python27\lib\site-packages\grab-0.4.7-py2.7.egg\grab\ext\form.py", line 323, in form_fields
del fields[elem.name]
KeyError: 'shopProlongFullSet'

Суть в том что Grab при обработке формы удаляет отключенные элементы. При этом в словаре содержится один элемент radio (выбранный), а на форме их как минимум два; и Grab дважды удаляет элемент из словаря. Понятно что второй раз там элемента уже нет.

На данный момент я решил проблему изменением кода в grab/ext/form.py. В частности добавил перед 232 строкой проверку на наличие элемента в словаре:
if elem.get('disabled'):
    if fields.get(elem.name):
        del fields[elem.name]
     continue

Вопрос следующий. Есть ли другие, легальные, способы обойти эту ошибку?
Использую Grab 0.4.7
plusplus
Вряд ли, я тоже находил одну недоработку с формами, напиши issue на битбакет, может пофиксят. Мою пока не пофиксили:)
odnochlen
Я бы выкинул это и формировал запросы вручную.
lorien
Бага озвученная топикстартером пофиксена: https://bitbucket.org/lorien/grab/issue/57/disabled-radiobutton

> Мою пока не пофиксили:)

Что за бага? Вообще намного эффективней фиксить баги самостоятельно и присылать патчи :)
plusplus
lorien
Бага озвученная топикстартером пофиксена: https://bitbucket.org/lorien/grab/issue/57/disabled-radiobutton

> Мою пока не пофиксили:)

Что за бага? Вообще намного эффективней фиксить баги самостоятельно и присылать патчи :)

Ну дык я так и сделал:) https://bitbucket.org/lorien/grab/issue/40/multipleselectoptions-form_fields, на данный момент не проверял исправлено или нет.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB