我正在构建一个Java工具,试图使用Java和Jaunt API自动填写HTML中的一些表单Jaunt API元素。
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>用于填充“正常”输入字段reference (它有效)的Java如下所示:
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来完成这个任务。
它希望在这方面提供任何帮助。
提前感谢
编辑-是否有一种方法,以达到点标注输入字段searchprofile.surname与JSoup?
HTML允许name-Attribute中的点,但Jaunt接受这个abc.name吗?
发布于 2015-11-26 13:46:59
今天,在使用Jaunt解决方案时,
form.set("searchprofile.surname", "TestPerson");很有魅力。
我不知道刚才出了什么问题,但我很高兴它起作用了。
HTML允许使用点和减号等,我将其误解为某种嵌套形式或层次结构,但点表示法只是HTML中的一个有效的name-attribute。
发布于 2015-11-25 22:49:26
不确定Jaunt,以前从未使用过它。然而,在这里使用Jsoup似乎是一个相当不错的库。我本人使用Jsoup已经有相当长的时间了,它在抓取网页()、填充输入表单和提交(当然还有HTML解析)方面非常成功!
我已经一步一步地发布了一个指南,用于填写表单输入字段并在以下答案中提交给服务器:How to login with Jsoup
基本上,它的工作原理非常类似于您的代码,一个非常简短的例子是:
Connection.Response response = Jsoup.connect(url)
.data("Name", "Value")
.method(Method.POST).execute();https://stackoverflow.com/questions/33919034
复制相似问题