0

私は、情報をWebサイトに自動的にプラグインし、その情報に対していくつかのjavascript関数を実行するJavaプログラムを作成しています。

私の問題は、ページが読み込まれると、ブラウザ情報をチェックするjavascriptが自動的に呼び出され、Javaをダウンロードすることを推奨することです。当然、私はすでにJavaをインストールしています。そうしないと、プログラムが実行されません。

これは、チェックを実行するためにスクリプトがリダイレクトするサイトです:http: //java.com/js/deployJava.txt

私のコードの関連部分:

WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3_6);
HtmlPage page = webClient.getPage("https://www.blahblahblah.com");
// this is where I get redirected

HtmlTextInput txtElement = (HtmlTextInput) page.getElementById("itemID");
// this returns null, because I am on a different page than what I expect
txtElement.type("my search info");

page = txtElement('\n');  // to submit the field (there is no submit button)

私はすべての異なるブラウザ設定を試しましたが、効果はありませんでした。

ブラウザで同じURLにアクセスすると、ページが問題なく読み込まれます。

リダイレクトを無効にしようとすると、getPageはHtmlPageではなく空のTextPageを返しました。

他の誰かが同様の問題に遭遇したことがありますか、または何か洞察がありますか?そのjavascriptの一部が実行されないようにする方法はありますが、残りは実行されませんか?

クロスポスト: http: //www.experts-exchange.com/Programming/Languages/Java/Q_27765581.html

前もって感謝します、

阿修羅

更新:結局のところ、私はポストリクエストを通じて必要な情報を得ることができます。ご協力ありがとうございます!

4

1 に答える 1

0

HtmlUnitでラップされた JWebUnit を使用して、次のようにすることができます。

public void testFoo() {
  beginAt("blabla");
  ...
  setScriptingEnabled(false);
  ...//Problematic code
  setScriptingEnabled(true);
  ...
}

JavaScriptを一時的に無効にします

于 2012-06-21T19:28:54.377 に答える