2010-01-09 61 views
1

我使用htmlunit來測試一些頁面,我想知道如何在當前頁面的上下文中執行一些javascript代碼。我知道文檔說我最好模擬一個用戶在頁面上的行爲,但它不是這樣工作:((我有一個div它有一個onclick屬性,我稱其爲click方法,但沒有情況),所以我做了一些谷歌上搜索,並試圖:。如何在網頁上執行隨機的Javascript代碼?

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

好像我必須先初始化腳本,但我已經找到了如何做到這一點(右)沒有資料可能有人分享代碼片段展示瞭如何使Web客戶端實例執行所需的代碼?

回答

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()); 

打印 「谷歌」。 (我敢肯定,你將有一些更精彩的代碼就擺在那裏。)

1

我不知道JavaScriptEngine你報價,也許這不是你想要的答案,但是這聽起來像Selenium IDE一個完美的案例。

Selenium IDE是一款Firefox附加組件,可記錄點擊,鍵入和其他操作以進行測試,您可以在瀏覽器中播放該測試。

+0

我也強烈建議硒RC – slebetman 2010-01-09 16:44:36

0

TestPlan使用後端的HtmlUnit谷歌的例子是:

GotoURL http://www.google.com/ncr 
set %Title% as evalJavaScript document.title 
Notice %Title%