Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 19, 2012 12:35:55

Griffon
От: Ukrain, Zaporozhie
Зарегистрирован: 2009-03-04
Сообщения: 324
Репутация: +  11  -
Профиль   Отправить e-mail  

Grab и RadioButton

Доброго времени суток.

Понадобилось мне автоматом заполнять форму на одном малоизвестном сайте. Решил использовать 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



Отредактировано Griffon (Сен. 19, 2012 12:40:33)

Офлайн

#2 Сен. 19, 2012 14:52:04

plusplus
От:
Зарегистрирован: 2009-01-05
Сообщения: 418
Репутация: +  15  -
Профиль   Отправить e-mail  

Grab и RadioButton

Вряд ли, я тоже находил одну недоработку с формами, напиши issue на битбакет, может пофиксят. Мою пока не пофиксили:)



Офлайн

#3 Сен. 21, 2012 18:22:23

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Grab и RadioButton

Я бы выкинул это и формировал запросы вручную.

Офлайн

#4 Сен. 27, 2012 21:58:26

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Grab и RadioButton

Бага озвученная топикстартером пофиксена: https://bitbucket.org/lorien/grab/issue/57/disabled-radiobutton

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

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

Офлайн

#5 Сен. 29, 2012 17:28:41

plusplus
От:
Зарегистрирован: 2009-01-05
Сообщения: 418
Репутация: +  15  -
Профиль   Отправить e-mail  

Grab и RadioButton

lorien
Бага озвученная топикстартером пофиксена: https://bitbucket.org/lorien/grab/issue/57/disabled-radiobutton

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

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

Ну дык я так и сделал:) https://bitbucket.org/lorien/grab/issue/40/multipleselectoptions-form_fields, на данный момент не проверял исправлено или нет.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version