我正在使用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
变量吗?
答案 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/