0

select タグからオプションを選択するにはどうすればよいですか?

このフォームには select タグが 1 つだけ含まれており、送信ボタンは含まれていません。オプションが選択されると、同じページにさらにコンテンツを追加する 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>
4

2 に答える 2

0

残念ながら、WWW:MechanizeJavascript エンジンはありません。ここで言われています: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

もう1つの解決策は、ヘッドレスブラウザを自動化することです(Selenium withなどPhantomJS

于 2013-09-17T13:12:17.040 に答える
0

私は機械化の経験があまりありませんが、次のようにする必要があると思います。

control = form.find_control('D1')
control.value = ['3']
于 2013-05-19T01:19:58.047 に答える