无法设置SelectControl元素的值

用户

我试图通过提交一个带有mechanize的表单来获取机器可解析的总线调度数据。在

但是,我被用于设置的mechanize语法所阻碍

import mechanize
br = mechanize.Browser()
br.open("http://www.planibus.sto.ca/HastinfoWeb/StartTimetableForm.aspx")
br.select_form(name="TimetableQueryForm")
br["RouteDirectionDynamicComboBox$ComboBox_Input"] = "10 OTTAWA" # works fine, it's a TextControl
br["DatePicker$DaysDropDownList"] = ["3"] # This is a SelectControl
### mechanize._form.ItemNotFoundError: insufficient items with name '3'

mechanize._form.ItemNotFoundError: insufficient items with name '3'看起来它需要一个列表,但是当我在列表中输入多个项目时(这没有什么意义,因为这是一个日期选择器),我得到:

mechanize._form.ItemCountError: single selection list, must set sequence of length 0 or 1

我以为我最初的["3"]是一个长度为1的序列?在

谢谢你的关注。我可能错过了一些显而易见的东西。。。在

编辑:请注意,上面的“3”只是一个值,网站允许在其UI中显示未来两周的值,因此,根据您看到此值的时间,允许值的列表将发生更改。用一个允许的值代替'3'。。。对我来说还是不行。。。在


已被浏览了5402次
更新日期: 2020-09-28 07:46:18
1 个回答
fefe Tyson

3不是可用的选择选项之一,我看到的选项是

^{1}$

所以试试br["DatePicker$DaysDropDownList"] = ["4"],你的代码应该可以工作了。在

编辑:我已经试过用mechanize查看有问题的页面,试试这个

^{pr2}$

没有任何选项,我想javascript是用来填充页面加载后的。不幸的是mechanize doesn't support javascript,尝试使用Selenium Webdriver来获取所需的数据。在

评论 - 2020年8月7日 16:59

最新Python问答

推荐Python问答