gpt4 book ai didi

javascript - 使用 HtmlUnit 提交表单

转载 作者:行者123 更新时间:2023-11-28 19:04:07 24 4
gpt4 key购买 nike

有人知道如何使用 HtmlUnit、Java 提交此表单吗?

    <form name="sendSmsForm" method="POST" action="/talkmore3/servlet/SendSmsFromSelfcare" onsubmit="return checkBeforeSubmit();">
<input type="hidden" value name="message1" id="message1"/>
<input type="hidden" value name="list" id="list"/>
<table border="0" width="560">
<tbody>
<tr>
<td>
<div id="ContactListPanel">
<iframe height="425" width="560" frameborder="0" scrolling="no" id="ContactListFrame" name="ContactListFrame" src="/talkmore3/servlet/ManageContactList">
</iframe>
</div>
</td>
</tr>
<tr align="left">
<td colspan="2" align="left">
<div class="button_green" style="width: 114px; float: left;margin-left: 130px">
<a href="javascript:sendSMS();" title="Send SMS">
<span>
Send SMS
</span>
</a>
</div>
</td>
</tr>
</tbody>
</table>
</form>

我已经尝试过这个:

HtmlForm form = page.getFormByName("sendSmsForm");
form.getInputByName("list").setValueAttribute("99999999");
form.getInputByName("message1").setValueAttribute("test");
HtmlAnchor submit = page.getFirstByXPath("//a[@href='javascript:sendSMS();']");
submit.click();

但它似乎没有获取输入的值..

最佳答案

如您所见,此 html 包含一些 js 脚本,因此您需要运行它才能获得所需的行为。

尝试如下:

HtmlForm form = page.getFormByName("sendSmsForm");
form.getInputByName("list").setValueAttribute("99999999");
form.getInputByName("message1").setValueAttribute("test");

page = (HtmlPage) page.executeJavaScript("checkBeforeSubmit()").getNewPage(); // from onsubmit
page = (HtmlPage) page.executeJavaScript("sendSMS()").getNewPage(); //from submit link

此代码应该设置表单值,验证表单,然后使用 sendSMS() 方法执行一些操作。

通常你需要跟踪这些页面中的js。其中一些监听输入更改,进行某种验证等。另外,请查看 checkBeforeSubmitsendSMS 函数,了解它们对您的页面执行的操作。

关于javascript - 使用 HtmlUnit 提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32023830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com