2017-04-04 198 views
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中沒有的形式或輸入字段我如何填寫用戶名和密碼字段沒有線索。

回答

0

還有一些要點:

  1. 要填寫用戶名和密碼,你應該使用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