如何在网页上执行随机Javascript代码?

时间:2010-01-09 16:21:42

标签: java javascript htmlunit

我正在使用htmlunit来测试一些页面,我想知道如何在当前页面的上下文中执行一些javascript代码。我知道文档说我最好模仿用户在页面上的行为,但它没有这样工作:((我有div有一个onclick属性,我称之为click方法但没有任何反应。所以我做了一些谷歌搜索并尝试过:

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

似乎我必须首先实例化脚本,但我没有找到关于如何操作的信息(右)。有人可以共享一个代码片段,展示如何让webclient实例执行所需的代码吗?

3 个答案:

答案 0 :(得分:1)

我不知道你引用的JavaScriptEngine,也许这不是你想要的答案,但这听起来像是Selenium IDE的完美案例。

  

Selenium IDE是一个Firefox附加组件,可记录点击,输入和其他操作以进行测试,您可以在浏览器中播放。

答案 1 :(得分: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”。 (我相信你会有更多令人兴奋的代码放在那里。)

答案 2 :(得分:0)

在使用HTMLUnit后端的TestPlan中,google示例为:

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