0
我試圖使用到的HtmlUnit以下網站使用ESSE3(學生管理系統)登錄:https://www.studenti.ict.uniba.it/esse3/Home.do的HtmlUnit:登錄ESSE3平臺
這是「登錄」 href值:AUTH/Logon.do ; JSESSIONID = EF0F5942A7390DB3A5C5AD99955D4C3E.jvm2b
然後,完整的驗證鏈接爲:https://www.studenti.ict.uniba.it/esse3/auth/Logon.do;jsessionid=EF0F5942A7390DB3A5C5AD99955D4C3E.jvm2b
但是我有,因爲有在HTML中沒有的形式或輸入字段我如何填寫用戶名和密碼字段沒有線索。
A
回答
0
還有一些要點:
要填寫用戶名和密碼,你應該使用CredentialsProvider
,例如
try (final WebClient webClient = new WebClient()) {
DefaultCredentialsProvider credentialsProvider =
(DefaultCredentialsProvider) webClient.getCredentialsProvider();
credentialsProvider.addCredentials("someuser", "somepass");
HtmlPage page = webClient.getPage("https://www.studenti.ict.uniba.it/esse3/Home.do");
HtmlPage page2 = page.getAnchorByText("Login").click();
}
有一個在Java腳本,其可以由下面來克服作爲暗示
here
illegal character
,這可能是一個錯誤在的HtmlUnit,可查:
public WebResponse getResponse(WebRequest request) throws IOException {
WebResponse response = super.getResponse(request);
if (request.getUrl().toExternalForm().contains("footable/js")) {
String content = response.getContentAsString();
StringBuilder builder = new StringBuilder();
for (int i = 0; i < content.length(); i++) {
char ch = content.charAt(i);
if (ch >= 7 && ch <= 127) {
builder.append(content.charAt(i));
}
}
content = builder.toString();
WebResponseData data = new WebResponseData(content.getBytes(StandardCharsets.UTF_8),
response.getStatusCode(), response.getStatusMessage(), response.getResponseHeaders());
response = new WebResponse(data, request, response.getLoadTime());
}
return response;
}
};
更新:這現在已經修復在SVN中。
它抱怨CSSRuleList:
TypeError: Cannot find function item in object [object CSSRuleList]
這可以通過使用
BrowserVersion.FIREFOX_45
,被固定,如果它應該被調查在Chrome/IE中受支持。
更新:這現在已經修復在SVN中。
儘管如此它抱怨:
TypeError: Cannot read property "selectorText" from null
這應該是isolated as minimal case。