机械化从下拉列表中选择

时间:2015-06-19 08:57:51

标签: python mechanize

我想机械化检查所选下拉列表的当前值是否为默认值,然后mechanize将在列表中选择另一个值。 下拉列表的html如下:

            <td class="label">List</td>
            <td>
                <select name="list" id="list" onchange="list()">
                    <option>---</option>
                 <option value='1'>1</option>
<option value='2'>2</option>
---other options---

我的代码是:

if br.form["list"] == "---":
    br.form["list"].value = "1"
    r = br.form["list"]
    print(r)

但是列表值仍会返回:

   ['---']

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您需要将值指定为列表:

if br.form["list"] == ["---"]:
    br.form["list"].value = ["1"]

根据mechanize - Forms documentation

# Controls that represent lists (checkbox, select and radio lists) are
# ListControl instances.  Their values are sequences of list item names.
# They come in two flavours: single- and multiple-selection:
form["favorite_cheese"] = ["brie"]  # single
form["cheeses"] = ["parmesan", "leicester", "cheddar"]  # multi