2010-01-09 36 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%