2013-05-18 58 views
0

如何从选择标签中选择一个选项?Python机械化:选择一个选项

此表单只包含一个选择标签并且没有提交按钮。当选择一个选项时,它应该调用javascript函数__doPostBack('D1',''),它将更多内容添加到同一页面。

<select name="D1" onchange="__doPostBack('D1','')" language="javascript" id="D1"> 
    <option value="0">- Select -</option> 
    <option value="1">option1</option> 
    <option value="3">option2</option> 
    <option value="5">option3</option> 
    </select> 

回答

0

虽然我没有与机械化那么多的经验,我相信它应该是这样的:

control = form.find_control('D1') 
control.value = ['3'] 
0

不幸的是,WWW:Mechanize没有一个Javascript引擎。这里说:http://wwwsearch.sourceforge.net/mechanize/faq.html#script

有一些解决方法,但它不知道该方法将100%的时间工作。

#Changing the control 
br.select_form(nr=0) # select the first form : try to locate your form and adapt the line 
form = br.form 
form['D1'] = ['3'] 

#Submitting the changes 
request2 = form.click() # mechanize.Request object 
try: 
    response2 = mechanize.urlopen(request2) 
except mechanize.HTTPError, response2: 
    pass 

另一解决方案是自动化模拟浏览器(如SeleniumPhantomJS