2011-09-24 9 views
6

私は本当に混乱しています。私は基本的にpythonのための機械化とウェブサイト上のフォームを記入しようとしています。私は、ドロップダウンメニューを除いて、すべてを稼働させています。それを選択するために私は何を使用するのですか、私は値のために何を入れますか?私は選択の名前や数値を入れなければならないのか分かりません。ヘルプは大変感謝します、ありがとう。機械化されたドロップダウンメニューのアイテムをPythonで選択するにはどうすればいいですか?

コードスニペット:

try: 
     br.open("http://www.website.com/") 
     try: 
      br.select_form(nr=0) 
      br['number'] = "mynumber" 
      br['from'] = "[email protected]" 
      br['subject'] = "Yellow" 
      br['carrier'] = "203" 
      br['message'] = "Hello, World!" 
      response = br.submit() 
     except: 
      pass 
    except: 
     print "Couldn't connect!" 
     quit 

私はドロップダウンメニューである担体、とのトラブルを抱えています。

+0

具体例を挙げてください。試したコードと試したときに起こったことを表示しますか? – infrared

+0

今すぐ投稿する – user962889

+0

質問のタイトルをタグのリストである代わりに、問題の要約として書き直すと、おそらくもっと良い答えが得られるでしょう(タグのリストはそれだけです)。 「お願いします!」と言う必要はありません。なぜなら、あなたが質問をしているなら、あなたは明らかに助けを求めているからです。 –

答えて

3

mechanize documentation examplesによれば、browserオブジェクトではなくformオブジェクトの属性にアクセスする必要があります。また、選択制御のために、あなたはリストに値を設定する必要があります。

br.open("http://www.website.com/") 
br.select_form(nr=0) 
form = br.form 
form['number'] = "mynumber" 
form['from'] = "[email protected]" 
form['subject'] = "Yellow" 
form['carrier'] = ["203"] 
form['message'] = "Hello, World!" 
response = br.submit() 
+0

私は昨日尋ねたので返信するかどうか分かりませんが、 "キャリア"については、ドロップダウンリストにあるものの名​​前またはその値に値を設定しますか?例:名前:Foo値:129 – user962889

+0

問題のフォームのhtmlを投稿できますか?正しくテストして回答できますか? – infrared

2

長い死んでポストを復活させるために申し訳ありませんが、これは私がGoogleで見つけることができる、まだ最高の答えだったし、それはしていません作業。私が認めようとするよりも長い時間が経過した後、私はそれを理解した。赤外線はフォームオブジェクトについては正しいですが、残りについてはそうではなく、コードは機能しません。私にはうまくいくいくつかのコードがあります(より洗練されたソリューションが存在することは確かですが):

# Select the form 
br.open("http://www.website.com/") 
br.select_form(nr=0) # you might need to change the 0 depending on the website 

# find the carrier drop down menu 
control = br.form.find_control("carrier")  

# loop through items to find the match 
for item in control.items: 
    if item.name == "203": 

    # it matches, so select it 
    item.selected = True 

    # now fill out the rest of the form and submit 
    br.form['number'] = "mynumber" 
    br.form['from'] = "[email protected]" 
    br.form['subject'] = "Yellow" 
    br.form['message'] = "Hello, World!" 
    response = br.submit() 

    # exit the loop 
    break 
+0

ループの代わりにcontrol.disabled = False control.value = ["203"]することができます。お知らせ下さい – Lazik

関連する問題