2017-06-26 2 views
0

Ich versuche mit HTMLUnit Web Scraping in Salesforce durchzuführen, um Informationen zu den Organisationslizenzen zu erhalten. Es funktioniert, wenn ich versuche, über die normale Login/Test-URL auf Salesforce zuzugreifen. Aber ich möchte in der Lage sein, mich über die Session-ID mit der Methode /secur/frontdoor.jsp?sid= anzumelden.Salesforce arbeitet nicht mit HTMLUnit

Wenn ich versuche, das zu verwenden, beschwert sich Salesforce, dass Javascript nicht aktiviert ist. Aber ich habe es in HTMLUnit aktiviert.

java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(java.util.logging.Level.OFF); 

     final WebClient webClient = new WebClient(BrowserVersion.BEST_SUPPORTED); 
     HtmlPage page; 

     webClient.waitForBackgroundJavaScript(10000); 
     webClient.waitForBackgroundJavaScriptStartingBefore(10000); 
     webClient.getOptions().setJavaScriptEnabled(true); 
     webClient.getOptions().setRedirectEnabled(true); 
     webClient.getOptions().setCssEnabled(true); 
     webClient.getOptions().setThrowExceptionOnScriptError(false); 
     webClient.getOptions().setAppletEnabled(false); 
     webClient.getOptions().setThrowExceptionOnFailingStatusCode(false); 
     webClient.getOptions().setActiveXNative(true); 
     webClient.getOptions().setAppletEnabled(true); 

     page = webClient.getPage("https://salesforce--domain/secur/frontdoor.jsp?sid=SessionId"); 

Antwort

0

Ich habe es herausgefunden. Aus irgendeinem Grund wird Ihre Nachricht nicht automatisch umgeleitet. Sie müssen also nur die URL von der ersten getPage abrufen und zu der neuen URL wechseln.

 java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(java.util.logging.Level.OFF); 

    final WebClient webClient = new WebClient(BrowserVersion.BEST_SUPPORTED); 
    HtmlPage page; 

    webClient.waitForBackgroundJavaScript(10000); 
    webClient.waitForBackgroundJavaScriptStartingBefore(10000); 
    webClient.getOptions().setJavaScriptEnabled(true); 
    webClient.getOptions().setRedirectEnabled(true); 
    webClient.getOptions().setCssEnabled(true); 
    webClient.getOptions().setThrowExceptionOnScriptError(false); 
    webClient.getOptions().setAppletEnabled(false); 
    webClient.getOptions().setThrowExceptionOnFailingStatusCode(false); 
    webClient.getOptions().setActiveXNative(true); 
    webClient.getOptions().setAppletEnabled(true); 

    page = webClient.getPage("https://salesforce--domain/secur/frontdoor.jsp?sid=SessionId"); 

Seite = webClient.getPage (page.getURL());