- 大家好,
我正在构建一个 Java 工具,尝试使用 Java 和 Jaunt API
在 HTML 页面中自动填写一些表单 input
元素。
HTML 代码如下:
<fieldset class = "fieldsetlong">
<legend>searchprofile</legend>
<label for="reference">reference:</label>
<input maxlength="50" name="reference" id="reference" type="text" />
</fieldset>
<fieldset class = "fieldsetlong">
<legend>searchcriteria</legend>
<label for="surname">surname:</label>
<input name="searchprofile.surname" id="surname" type="text" />
</fieldset>
用于填写“正常”输入字段的 Java 代码 reference
(有效)如下所示:
form.set("reference", "123Test");
很遗憾,我无法填写名称中使用点符号 searchprofile.surname
的字段
这是我尝试过的示例(没有成功):
form.set("surname", "TestPerson");
form.set("searchprofile.surname", "TestPerson");
form.set("name=\"searchprofile.surname\"", pers.getSurname());
form.set("id=\"surname\"", pers.getSurname());
对于这些命令中的每一个,我都得到一个 NotFoundException 并且不知道我是否可以用 Jaunt 做到这一点。
在这方面,我们将不胜感激。
提前致谢
编辑 - 有没有办法用 JSoup 到达点标记的输入字段 searchprofile.surname
?
HTML 允许在 name
-Attribute 中使用点,但是 Jaunt 接受这个 abc.name
吗?
最佳答案
不确定 Jaunt
,以前从未使用过。然而,Jsoup
似乎是一个相当不错的库,可以在这里使用。我自己已经使用 Jsoup
相当长的时间了,它在抓取网页、填写输入表单并提交以及当然是HTML 解析!
我已经发布了一步一步的指南来填写表单输入字段并在以下答案中提交给服务器:How to login with Jsoup
基本上它的工作原理与您的代码非常相似,一个非常简短的示例是:
Connection.Response response = Jsoup.connect(url)
.data("Name", "Value")
.method(Method.POST).execute();
关于java - 使用 Java 和 Jaunt API 填写具有复杂名称(输入标签中的点符号)的 HTML 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33919034/