1

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()が最初の送信コントロールを選択していると想定していますか?誰かがこれを回避する賢い方法を知っていますか?

4

1 に答える 1

1

送信ボタンの番号を使用できます: br.submit(nr=2) nr は最初の送信ボタンの 0 から始まります

于 2013-01-25T17:41:53.430 に答える