1つのフォームと異なるタスクを実行する2つの異なるボタンを含むPHP/HTMLページでHTMLボタンを送信しようとしています。2番目の送信ボタンを送信する必要があります。問題は、どちらのボタンにもid属性がなく、タイトルタグによってのみ区別されることです。選択ボックス(正しいと思います)を使用して注文と注文ラインを選択し、フォームの2番目の[実行]/[送信]ボタンを押す必要があります。例えば
<form>
....
<input class="button" type="submit" value="Go">
....
その後、さらに下に...
<select class="sfield" name="last">
<option value="0" selected="">From: First order</option>
<option value="1">From: 19/10/2012 16:22</option>
</select>
<select class="sfield" name="items">
<option value="1" selected="">Include: Orders and items</option>
<option value="0">Include: Order lines only</option>
</select>
<input class="button" type="submit" onclick="this.form.action.value='export'" title="Generate CSV file" value="Go">
私のPythonコードスニペットは次のとおりです...
br.form['last'] = ['0'] # Select the 'From First Order'
br.form['items'] = ['1'] # Select both Orders and Order Lines
br.submit()
# When I uncomment the line below I can process a CSV file but it just contains Orders only!
# br.open("http://www.mysite.com/admin/ordermanager.php?action=export")
# Read and process CSV file from csv link displayed on repost of submitted form....
# this section below works fine.
for link in br.links(url_regex=r"export",nr=0):
resp = br.follow_link(link)
content = resp.read()
Last_Run_Date = strftime("%Y%m%d%H%M%S", localtime())
with open('c:\python27\%s.csv' % Last_Run_Date, 'w') as fo:
fo.write(content)
Mechanizeのドキュメントにbr.submit(title ='CSVファイルの生成')などのbr.submitのタイトル属性を指定する方法はないようです。2番目が必要なときにbr.submit()が最初の送信コントロールを選択していると想定していますか?誰かがこれを回避する賢い方法を知っていますか?