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

How to call a javascript in HttpClient or Html Unit

本文关键字:单元 调用 javascript Html HttpClient      更新时间:2023-09-26

我正在使用http客户端POST方法在网站中执行特定操作,为此,它使用ajax连接的javascript来生成requestID即要发布的CCD_ 1。我想访问那个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变量吗?

你是指网络浏览器吗?

firefox的firebug和IE 的F12

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

看起来您想要从Java中执行javascript。就我个人而言,我发现HTMLUnit和HTTPUnit的javascript支持有点欠缺。我们也遇到过类似的问题,并且使用Selenium取得了巨大成功。您可以使用SeleniumIDE创建一个快速测试用例,它是一个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/