を使用しProcess p=Runtime.getRuntime().exec
て Web ページを開きます。Java を使用して開いている Web ページのボタンをクリックするには、どのイベント ハンドラを使用しますか?
2 に答える
なし、本当に。開始したプロセスをそのようにきめ細かく制御することはできません。取得できるのは、プロセスからの入力、出力、およびエラー ストリームだけです。
Java から Web ページを操作したい (ただし画面には表示しない) 場合は、HtmlUnitを参照してください。
特定のブラウザー (ユーザー エージェント ヘッダー、Cookie ポリシーなど) を偽装するように HtmlUnit を構成できます。
他のすべてが失敗した場合は、小さな JavaScript コントローラーを作成し、ターゲット Web ページを直接開く代わりにブラウザーで開くことができます。次に、その JavaScript コントローラーがアプリケーションと対話し、指示 (どのページに移動するかなど) を取得し、それらに基づいて行動することができます。Seleniumはそのための良い候補ですが、おそらくブラウザ プラグインをインストールする必要があります。
ラダイからの回答とコメントに追加
a。「これをすでに実行するプログラムがありますが、ブラウザがないためにブルーコートのセキュリティが原因で、私のWorkドメインでは動作しません」-これはブラウザがないためではありません。これは、Javaプロセスにページにアクセスするためのプロキシクレデンシャルがないためです。ツールからのhttp呼び出しは、プロキシを介して送信されます。必要なプロパティで環境を設定してみることができます。
コマンドラインからツールを実行している場合-次のようなものを試すことができます
JAVA_FLAGS=-Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800
java ${JAVA_FLAGS} <java_class_to_run>
b。ツールの再作成を計画している場合-jsoupはもう1つの優れたオプションです