0

を使用してフォームを送信しようとしてHTMLUnitいますが、http 投稿が同じページに移動すると、フォームのアクション属性が無視されるようです。この 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 に投稿してください。

私はフィドラーを使用して、実際の Web ブラウザーを介して要求を分析しHTMLUnit、2 つを比較して、同じサイト (つまり、最初に言及した URL) に POST しているHTTP POSTことを簡単に確認できます。HTMLUnit

HTMLUnit POST2 番目の URL にそれが必要です。

誰かが私を助けることができれば、私は感謝します。

4

2 に答える 2

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 に答える
0

問題が解決しました。

使用する代わりに:

HtmlPage page2 = button.click();

私が使用した:

button.click().getWebResponse().getContentAsString();
于 2012-12-31T02:22:50.157 に答える