Как преодолеть ItemsNotFoundError в механизме при работе со скрытыми формами - PullRequest
0 голосов
/ 08 мая 2019

Я создаю скрипт, который отправляет форму.Проблема, с которой я сталкиваюсь, заключается в том, что некоторые параметры скрыты и не отображают параметры (в исходном коде HTML), пока другие поля не будут заполнены.

Я получаю ошибку ItemNotFoundError: недостаточно элементов с именем «xxx».

Я попытался изменить поля в «правильном порядке», но, как и ожидалось, это не меняет результат.

Мой код выглядит примерно так:

import mechanize

br = mechanize.Browser()
br.set_handle_robots(False) #ignore robots.txt
br.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 5.2; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11')]

bot = br.open("www.website.com")
br.select_form(nr=0)

br['type'] = ["xxx",]
br['specific'] = ["yyy",]

Проблема, как указывалось ранее, заключается в том, что "тип" и "конкретный" имеют отношение один ко многим, и оба они выпадающие, выберитеполя.Когда вы выбираете «тип», появляются различные варианты «конкретного».

Когда вы впервые просматриваете источник страницы для веб-сайта, единственная опция для «конкретного» - -1.Если вы выберете что-то для «типа», появится несколько опций для «конкретного», но механизация не сможет их увидеть.Напротив, я могу просматривать их в исходном коде страницы в этот момент.

Когда я отправляю форму через br.submit (), я получаю ItemsNotFoundError, поскольку он не может видеть эти значения.есть ли способ преодолеть это?

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

1 Ответ

0 голосов
/ 09 мая 2019

Я нашел решение своей проблемы. Надеюсь, что это может помочь другим людям, которые сталкиваются с чем-то похожим. Все, что мне нужно было сделать, это добавить:

item = mechanize.Item(br.form.find_control(name='nameOfFormControl'),
           {'contents': '221', 'value': '221', 'label': 221})

По сути, я добавляю новые опции (которые, как я знаю, действительны) в группу управления формой.

...