0

我正在尝试使用提交表单,HTMLUnit但似乎一旦 http 帖子进入同一页面,表单的 action 属性就会被忽略。我在这个 URL 上得到了表格:

http://www.tjse.jus.br/tjnet/consultas/internet/consnomeparte.wsp

而在这个URL的源码中我们可以发现action属性设置为这个URL:

http://www.tjse.jus.br/tjnet/consultas/internet/respconsnomeparte.wsp

HTMLUnit总是发布到第一个 URL。

我正在使用 fiddler 通过真实的 Web 浏览器分析请求,并通过HTMLUnit比较两者HTTP POST很容易看出HTMLUnit正在发布到同一个站点,即提到的第一个 URL。

我需要HTMLUnit POST第二个 URL。

如果有人可以帮助我,我将不胜感激。

4

2 回答 2

0

问题解决了。

而不是使用:

HtmlPage page2 = button.click();

我用了:

button.click().getWebResponse().getContentAsString();
于 2012-12-31T02:22:50.157 回答
0

我会使用与以下类似的东西。

// Enter your username in feild
searchForm.getInputByName("Username").setValueAttribute(schoolID);

//Submit the form and get the result page       
HtmlPage pageResult = (HtmlPage) searchForm.getInputByValue("Search").click();

//Page results in raw html source code  
String html = pageResult.asXml();

    /*
    * filter source code if needed to collect desired data
    */

//login via another server url
page = (HtmlPage) webClient.getPage("https://"+url);
HtmlForm LoginForm = page.getFormByName("Form1");

// login to web portal
LoginForm.getInputByName("txtUserName").setValueAttribute(username);
LoginForm.getInputByName("txtPassword").setValueAttribute(password);

//Submit the form and get the result page
HtmlPage pageResult = (HtmlPage) LoginForm.getInputByName("btnLogin").click();

注意:此 htmlUnit 代码符合 htmlunit 2.15 API

于 2014-11-18T13:08:16.313 回答