我想通過提交機械化表單來獲取機器可分析的總線調度數據。無法設置SelectControl元素的值
不過,我對機械化語法設置
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」 ......還是不爲我工作...
呀,這個問題是問昨天,當「3」是一個有效的答案:-)我試圖與(比如說)「10」,我也得到了同樣的錯誤 – Philippe
請參見上面的編輯答案。 – cerberos
Selenium Webdriver太酷了。我花了幾分鐘的時間,它看起來像是一個更好的解決我的問題。使用easy_install selenium進行安裝很簡單。謝謝! – Philippe