1

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

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

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

4

3 回答 3

1

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

Selenium IDE 是一个 Firefox 附加组件,它记录单击、键入和其他操作以进行测试,您可以在浏览器中回放这些操作。

于 2010-01-09T16:23:54.717 回答
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());

打印“谷歌”。(我相信你会有一些更令人兴奋的代码放在那里。)

于 2010-01-09T18:59:35.803 回答
0

在使用HTMLUnit后端的 TestPlan 中,谷歌示例是:

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