1

htmlunitを使用していくつかのページをテストしていますが、現在のページのコンテキストでjavascriptコードを実行する方法を知りたいです。ドキュメントでは、ページ上のユーザーの動作をエミュレートしたほうがよいと書かれていますが、このようには機能していません:((divonclickプロパティを持つがあり、そのclickメソッドを呼び出しますが、何も起こりません) 。だから私はいくつかのグーグルを作って試しました:

JavaScriptEngine jse = webClient.getJavaScriptEngine();
jse.execute(page, what here?);

最初にスクリプトをインスタンス化する必要があるようですが、その方法に関する情報が見つかりません(右)。誰かがwebclientインスタンスに必要なコードを実行させる方法を示すコードスニペットを共有できますか?

4

3 に答える 3

1

ではなく、ページでexecuteJavaScript()を呼び出す必要がありますwebClient

例:

WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3);
webClient.setJavaScriptEnabled(true);
HtmlPage page = webClient.getPage("http://www.google.com/ncr");
ScriptResult scriptResult = page.executeJavaScript("document.title");
System.out.println(scriptResult.getJavaScriptResult());

「Google」を印刷します。(そこに入れるためのもっとエキサイティングなコードがあると確信しています。)

于 2010-01-09T18:59:35.803 に答える
1

あなたが引用しているのかわかりませんし、おそらくそれはあなたが望む答えではないかもしれませんが、これはSeleniumIDEJavaScriptEngineの完璧なケースのように聞こえます。

Selenium IDEは、クリック、入力、およびその他のアクションを記録してテストを行うFirefoxアドオンであり、ブラウザーで再生できます。

于 2010-01-09T16:23:54.717 に答える
0

HTMLUnitバックエンドを使用する TestPlanでは、Google の例は次のとおりです。

GotoURL http://www.google.com/ncr
set %Title% as evalJavaScript document.title
Notice %Title%
于 2010-02-09T08:57:33.090 に答える