我正在使用htmlunit来测试一些页面,我想知道如何在当前页面的上下文中执行一些javascript代码。我知道文档说我最好模仿用户在页面上的行为,但它没有这样工作:((我有div
有一个onclick属性,我称之为click
方法但没有任何反应。所以我做了一些谷歌搜索并尝试过:
JavaScriptEngine jse = webClient.getJavaScriptEngine();
jse.execute(page, what here?);
似乎我必须首先实例化脚本,但我没有找到关于如何操作的信息(右)。有人可以共享一个代码片段,展示如何让webclient实例执行所需的代码吗?
答案 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%