2016-09-01 2 views
1

ruby​​ mechanizeを使用して結果ページをナビゲートする際のヘルプが必要です。私は、フォームの値をサブミットして、最初のページの結果をダウンロードすることができます。次のページへのリンクはruby​​ mechanizeを使用して結果ページをナビゲートする(リンクには "onclick ="が定義されています)

<a href=# onclick="setnext();">Next</a> 

次の結果ページに移動します。私はURL

<a href=# onclick="setnext();">Next</a> 

が適切に形成されていないことをエラーメッセージが表示されます

page = r_page.link_with(:text => 'Next').click 

ともワチール

@browser = Watir::Browser.new 
@login_page = result_page 
@l_page = @login_page.link(:text => "Next").fire_event('onclick') 
@browser.goto @l_page 

を使用して試してみました。私は引数としてpage_noを指定してページを呼び出そうとしましたが、結果ページではなくフォーム送信ページを読み込みます。親切に助けてください。ありがとうございます。

+0

'Next'は有効ではありません。## –

+0

はい、正しくあります.href = "#" – user6733460

+0

私はresult_page URLを教えてくれますか? –

答えて

0

mechanizeは、ボタンがクリックされたときに実行されるべきJavaScript関数を補間しません(onclick="setnext();")。

あなたは、少なくとも2つのオプションがあります。

  1. 読み取りをし、(それを介して、またはデバッグ)JavaScriptコードを理解しています。
  2. Mozilla Firefoxの場合はDeveloper(通常はF12を押してアクセスできますが、Chromiumには非常に似た機能があります)のツールを使用して、ネットワークタブに向かい、実際に発生するトラフィックを調べます。ボタン/リンクをクリックすると、特定のURL(いくつかの興味深いパラメータがありますか?)にGET/POSTリクエストが表示され、おそらくURLとパラメータがどのように構築されているかがわかります。

私は怠惰で、十分なHTTPを理解していて、まだJSコードを十分に読んでいないので、私は通常2番目の方法を使用します。

mechanizeは、JavaScriptをそのまま使用しないため、ブラウザでJavaScriptを最初にオフにして、ページが機能するかどうかを確認します。それがなければ、私は生成されたリクエストを見ます(JSを再びオンにして)。

+0

javascriptをオフにすると、ページの動作が変更されます。 setnext()のjsコードにはgetElementById( "Selected_pa​​ge")。value = 2があります。私はwatirを使ってonclick関数を呼び出すことができると思ったが、それも動作していない、watirを使ってonclick javascript関数を起動する別の方法がある。ありがとうございました。 – user6733460

関連する問題