如何在HttpClient或Html单元中调用javascript

时间:2012-03-31 04:57:29

标签: java javascript ajax httpclient htmlunit

我正在使用http客户端POST方法在网站中执行特定操作, 因为它使用ajax连接的javascript产生requestID 即var reqID = Math.floor(Math.random()*1000001);发布。 我想访问该reqID以执行操作。 关于如何在HttpClient中访问java脚本,任何人都可以帮助我吗? 或者我们可以使用HtmlUnit访问javascript的特定reqID变量吗?

我的JS包括:

ajaxConnection.prototype.execute = function() {
    var reqID = Math.floor(Math.random()*1000001);
    var params = "reqID=" + reqID ;
    for (var key in this.connection_parameters) {
        params += "&" + key + "=" + this.connection_parameters[key];
    }

我打电话给POST以执行操作,即

String Src = PageSource_Post("http://www.example.com/ajax/ratingClient.php", new String[][]{{"reqID",""},{"id", "329602"},{"cmd", "rate"},{"rating", "2"},}, null);

截至目前,我已将reqID保持为空白,其他参数来自pagesource! 我正在尝试HtmlUnit也喜欢

webClient.setJavaScriptEnabled(true);
HtmlPage firstPage = webClient.getPage("http://www.example.com/");
HTMLScriptElement script = new HTMLScriptElement();

从这里开始我必须访问特定的reqID变量吗?

2 个答案:

答案 0 :(得分:0)

你的意思是网络浏览器?

Firefox的firebug和IE的 F12

这些工具可以帮助您调试javascript,您应该在javascript代码中切换一个断点,然后逐步运行以查看reqID的值

答案 1 :(得分:0)

看起来你想从Java中执行javascript。就个人而言,我发现HTMLUnit,并且HTTPUnit的javascript支持有点缺乏。我们遇到过类似的问题,并且使用Selenium取得了巨大的成功。您可以使用Selenium IDE创建一个快速测试用例,这是一个firefox插件(http://docs.seleniumhq.org/projects/ide/)。它允许您在Firefox中记录步骤,并将测试用例导出到JUnit测试。这是步骤的一个很好的链接。 http://university.utest.com/selenium-basics-part-3-record-test-case-and-export-in-junit-format/