(哇,我没有意识到在这里获得帮助有多难。如果有人知道如何更好地提出这个问题,我愿意接受建议)
简要说明,我使用HtmlUnit加载页面,更改字段和.click()“提交”按钮。但是,如果单击其他表单上的其他按钮,则服务器始终会响应返回的页面。
显而易见的答案是我必须选择错误的表格或错误的按钮。然而,在几周内我使用了许多不同的语义来选择按钮,并且许多测试来验证它确实是正确形式上的正确按钮。
我已经使用这个网站几个月来学习各种各样的事情,想想你们每个人。 但是这个让我难以忍受了好几个星期。
以下是我正在尝试使用的精简网页:
<HTML>
...
<FORM ACTION="http://www.awebsite.com/search.asp" METHOD="POST">
...
<INPUT TYPE="SUBMIT" VALUE="Go!">
...
</form>
...
<FORM METHOD="POST" ACTION="inventory.asp?a=sd&blindID=252">
...
<INPUT TYPE="Submit" VALUE="Go!">
...
</form>
...
<FORM ACTION="inventory.asp?pg=1&blindID=252&a=c&viewPrices=" METHOD="post">
...
<INPUT TYPE="Submit" VALUE="Submit Changes" onClick="this.disabled=true;this.form.submit()">
...
</form>
...
</HTML>
我的java程序片段用于处理它:
// call my own external routine for getting web pages
HtmlPage page = webFetch.fetchWithCookies("http://www.awebsite.com/inventory.asp?blindID="+blindId, validator, filename); // get page with forms on it
// modify an input field
inpPrice = page.getElementByName("newPrice"+item.lotId);
inpPrice.setValueAttribute(item.price.toString());
// submit modified page to server
List<HtmlForm> forms = page.getForms();
HtmlForm form = forms.get(2);
HtmlSubmitInput button = form.getInputByValue("Submit Changes");
HtmlPage page2 = button.click(); // get the server response page
// save the returned page locally so we can look at it
File saveFile = new File("page2.htm");
if (saveFile.exists()) {
saveFile.delete();
}
page2.save(saveFile);
我想要第三种形式,但我做的每件事都会得到第二种形式的回应。我尝试过的事情: