我整天搜索如何<input type="file" multiple/>
在Java中使用HtmlUnit在HTML标签中上传更多文件,但我还没有找到。
任何人都可以帮忙吗?我不能修改网页,因为它们不是我的。
我目前正在使用:
HtmlFileInput#setValueAttribute(path);
HtmlFileInput#setContentType(contenType);
太感谢了!
我整天搜索如何<input type="file" multiple/>
在Java中使用HtmlUnit在HTML标签中上传更多文件,但我还没有找到。
任何人都可以帮忙吗?我不能修改网页,因为它们不是我的。
我目前正在使用:
HtmlFileInput#setValueAttribute(path);
HtmlFileInput#setContentType(contenType);
太感谢了!
好的。HtmlUnit 2.1.13 中似乎不存在此功能,因此打开了功能请求票:https ://sourceforge.net/p/htmlunit/feature-requests/215/
无论如何,我找到了一种可以实现类似行为的方法。这里是:
public static HtmlFileInput insertFileInputWithValue(String name, String value,
String contentType, HtmlPage page, DomElement parent) {
// Necessary, otherwise HtmlUnit doesn't generate HtmlFileInput, but HtmlTextInput by default
AttributesImpl ai = new AttributesImpl();
ai.addAttribute(null, null, "type", null, "file");
ai.addAttribute(null, null, "name", null, name);
HtmlFileInput input = (HtmlFileInput) HTMLParser.getFactory("input")
.createElementNS(page, null, "input", ai, true);
input.setValueAttribute(value);
input.setContentType(contentType);
parent.appendChild(input);
return input;
}
这些代码在您指定的任何父级中注入一个新的 html 输入文件,很可能是一个表单。
即使 HtmlUnit 不允许 using <input type="file" multiple/>
,也可以通过在表单中注入更多具有相同名称的 HtmlFileInput 元素来实现相同的行为,您可以在其中将要上传的文件设置为值。
我希望这有帮助。