Механизм Python с динамическим выбором выпадающего - PullRequest
3 голосов
/ 02 ноября 2010

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

В механизме я делаю что-то подобное, чтобы выбрать категорию:

import mechanize
br = mechanize.Browser()
"""Select the form and set up the browser"""
br["state"] = ["California"]
br["city"] = ["San Francisco"] # this is where the error is
br.submit()

Я не могу выбрать город как «Сан-Франциско», пока не выберу штат «Калифорния», поскольку выпадающий список городов динамически заполняется после выбора «Калифорния».

Как я могу отправить город с Python и механизировать?

1 Ответ

1 голос
/ 02 ноября 2010

Mechanize не поддерживает JavaScript. Вместо этого вы должны использовать urllib2 для отправки желаемых значений.

import urllib2
import urllib

values = dict(state="CA", city="SF") # examine form for actual vars
try:
    req = urllib2.Request("http://example.com/post.php",
                          urllib.urlencode(values))
    response_page = urllib2.urlopen(req).read()
except urllib2.HTTPError, details:
    pass #do something with the error here...
...