提问人:Vladimir 提问时间:12/11/2021 最后编辑:Janez KuharVladimir 更新时间:12/14/2021 访问量:216
Jsoup:将子元素附加到<foorm><input>元素不会影响表单数据
Jsoup: appending child <input> element to a <foorm> doesn't affect the form data
问:
以下单元测试失败:
@Test
public void test() throws Exception {
String html = "<html><form id=\"myform\"></form></html>";
Document document = Jsoup.parse(html);
Element inputElement = document.createElement("input");
inputElement.attr("name", "any_name");
inputElement.attr("value", "any_value");
Element formElement = document.getElementById("myform");
formElement = formElement.appendChild(inputElement);
List<Connection.KeyVal> formData = ((FormElement)formElement).formData();
Assert.assrt(1 == formData.size());
}
问题:
- 是错误还是我做错了什么?
- 有解决方法吗?
答:
0赞
Janez Kuhar
12/12/2021
#1
您必须将元素添加到表单中!input
查看 addElement(Element element)
的文档:
向此窗体添加窗体控件元素。
因此,在您的情况下,您必须在断言之前将以下行添加到代码中:
((FormElement) formElement).addElement(inputElement);
评论
0赞
Vladimir
12/14/2021
在这种情况下,输入元素不会添加到 HTML 树中
0赞
Janez Kuhar
12/14/2021
@Vladimir 你是对的!固定。
0赞
Vladimir
12/14/2021
只是想了解 FormElement 类需要什么元素属性?为什么 formData() 方法不能只迭代 children()?
0赞
Janez Kuhar
12/14/2021
你得问@JonathanHedley。^^
评论