1

私はMechanizeにかなり慣れていません...そして、私はまだ学んでいます。

私が抱えているこの問題について誰かが私を助けてくれるかどうか疑問に思いました。

Firefox経由でWeb開発者キットをいじってフォームを理解していますが、これを行うのに問題があります。

送信を投稿しようとしているWebサイトには、2つの送信ボタンがあります。ページ全体は主にjavascriptとjqueryコードであるため、その混乱を回避するには、次のようにページに直接情報を投稿する必要があることがわかりました...

 @page = Mechanize.new{|agent| agent.user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0a2) Gecko/20111101 Firefox/9.0a2'} 
 @page.post("http://www.somepage.do",'name1' => '1','name2' => '2', 'name3' => '3')

直接リンクが利用できない画像ファイルとして表示されるページには、複数のボタンがあります。

   <input id="btn1" type="image" title="Search" src="images/img/common/btn.gif" name="button1">
   <input id="btn2" type="image" title="Search" src="images/img/common/btn.gif" name="button2">

サイトからフォームをプルすると...なるほど...

ID='btn1', name = 'btn1', type ='image', 'value' = ''

直接リンクがあるかどうかはわかります...次のような投稿をする必要があります...

 @page.post("http://www.somepage.do/button2.html", 'name1' => '1','name2' => '2', 'name3' => '3')

しかし、ページのほとんどがjavascriptで行われているため、何かを探すのは困難です。

ヘルプや提案は大歓迎です。前もって感謝します。

編集:

わかりました...私はちょうどいくつかのことを見つけました...私が

@page.post("http://www.somepage.do",'name1' => '1','name2' => '2', 'name3' => '3')

奇妙な理由で、「name1」と「name2」がフォームに入力されません。
私はこれらの名前をウェブサイトから直接取得しました。

4

1 に答える 1

1

Firefoxを使用しているとおっしゃっていたので、HTTPFoxアドオンをインストールし、それを使用して、送信ボタンをクリックしたときに送信ボタンがWebサーバーに投稿する内容を分析します。このように、フォームに値を入力するか、フォームに入力フィールドを追加することで、Javascriptの動作を簡単に模倣できます(javascriptが送信前にフィールドを追加している場合)。私は、送信時に多くのjavascriptフォーム処理を行うWebサイトで、この手法を何度も成功裏に使用してきました。

于 2012-08-15T09:30:33.420 に答える