3

ApacheHttpClientを使用してWebページにアクセスします。リンクをクリックしたいのですが、リンクはjavaScriptですが、javascriptリンクをクリックしてURLリダイレクトを処理するにはどうすればよいですか?

サンプルのjavascriptとhtmlコード:

<a href="javascript:send(32023, 'YGHN_JKM', '8LMK');"> link</a>


function send(content_id, fic, cgRate) {
        var params = new Hash();
        params.set('content_id', content_id);
        params.set('tool', fic);
        params.set('cgRate', cgRate);

        new Ajax.Updater('return', '/mypkg/tools', {
            method: 'post',
            parameters: params,
            evalScripts: true,
            onInitialize: new Effect.Appear('loader', {duration: 0.0}),
            onComplete: new Effect.Fade('loader', {duration: 1.2})
        });
}
4

1 に答える 1

8

取得しようとしているページがAJAXを使用してリンクを取得しているようです。バニラHTTPClientだけでこの動作をエミュレートするのは難しいでしょう。HTTPClientは、「生の」HTTP通信用であり、ブラウザエミュレーション用ではありません。代わりに、ブラウザをエミュレートして次のページでJavaScriptを実行できるHtmlUnitに似たものを使用することをお勧めします:http://htmlunit.sourceforge.net/

HtmlUnitはかなり優れたJavaScriptサポートを備えていますが、完全ではありません。100%完全なブラウザエミュレーションに依存する必要がある場合は、Seleniumなどのブラウザ自動化フレームワークを使用する必要があります:http ://seleniumhq.org/

于 2011-09-01T09:49:12.360 に答える