Как распечатать информацию радиоуправления - PullRequest
2 голосов
/ 09 мая 2011

Я использую модуль mechanize для получения информации с веб-страницы. Он имеет раздел радиоуправления, который я выбираю, прежде чем перейти на следующую страницу. Я мог легко выбрать значение, присвоив ему значение. Но coulnt возвращает значение переключателя-кандидата. RadioSelect часть моей формы выглядит следующим образом:

<RadioControl(rdoSelect=[1634,ABX EXPRESS, 16650,XYZ EXP])>

Я мог бы легко установить значения с помощью:

br.form['txtSource']='1634,ABX EXPRESS'

Я хочу удалить список:

[1634,ABX EXPRESS, 16650,XYZ EXP]

UPDATE:

Когда я дал

print br.form['rdoSelect']

Это дает [] как результат

Я мог бы получить значение, используя

print br.form.possible_items("rdoSelect")

Но это дает мне это

/usr/lib/python2.5/site-packages/ClientForm.py:2984: DeprecationWarning: [item.name for item in self.items]
  return c.possible_items(by_label)

Ответы [ 2 ]

3 голосов
/ 04 июня 2011

Вместо:

print br.form.possible_items("rdoSelect")

Mechanize говорит использовать:

options = [item.name for item in form.find_control('rdoSelect').items]

Пример использования:

#!/usr/bin/python
import re
import mechanize
br = mechanize.Browser()
r = br.open("http://www.htmlcodetutorial.com/forms/_INPUT_TYPE_RADIO.html")
form = mechanize.ParseResponse(r, backwards_compat=False)[2]
options = [item.name for item in form.find_control('pizzasize').items]
print options

Выход:

['S', 'M', 'L']
0 голосов
/ 02 июня 2011

Во-первых, предупреждение об устаревании не является ошибкой. Обычно это означает, что используемая вами библиотека или код были написаны для более ранней версии Python.

Я не уверен, как txtSource относится к rdoSelect (кажется, вы ожидаете, что они будут содержать одинаковое значение?). Однако переключатель обычно имеет символическое значение, а не отображаемый текст. Можете ли вы предоставить образец кода HTML?

...