ジャワを通じてボタンをクリックする方法?
-
18-09-2019 - |
質問
私が間に実際のブラウザを介さずに、Javaプログラミング言語throught HTMLページ上のフォームにアクセスしたい。
現時点では私は HTML UNITするを通してそれをやっているが、それはページをロードするためにはもう少し時間がかかります。それはページの何百万にアクセスすることになると、この余分なビット時間が最も重要。
これを行うための任意の他の方法はありますか?
解決
私は似たような呼ば HttpUnitはにする前に使用してきましたが、それは賢明なパフォーマンスを比較してどのように私は考えていますます。
あなたが処理するために、ページの何百万を持っている場合は、、私はそれにいくつかのより多くのスレッドを投げることをお勧めします。ただの推測が、私はあなたが複数のスレッドにこれをスケールアップ場合は、(その場合には、それができるどれだけ速く問題ではありません)CPUパワーが不足する前に、あなたは、帯域幅を使い果たすだろうと思います。
他のヒント
ブラウザを使用してWebページへのアクセスもHtmlUnitは、遅くになるだろう。より良い方法はテストにあり単にWebインタフェースの下の層、あなたがページの何百万にアクセスする必要がないように - 。代わりにWebインターフェイスが正しく下層を使用していることを確認するために、十分なテスト
ブラウザでの相互作用の大部分は、HTTP GETまたはHTTP POSTにダウンしています。 あなたは正確にあなたが必要とする操作を把握する必要があり、その後、あなたはURLおよび/またはフォームのデータを構築することができます。 次に、あなたがこのようなものを使用することができますする
try {
//Construct data
String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8"); data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");
// Send data
URL url = new URL("http://hostname:80/cgi");
URLConnection conn = url.openConnection(); conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line; while ((line = rd.readLine()) != null) {
// Process line... }
wr.close();
rd.close();
} catch (Exception e) { }
所属していません StackOverflow