Klasse IE.au3 - Internetseite gibt keine Infos zurück

  • Hallo zusammen,

    ich habe (mal wieder) ein Problem, für das ich eine Lösung benötige.

    Ich habe zunächst einen sehr einfachen Quelltext. (Ich brauche das Skript bei mir auf der Arbeit, deshalb kann ich die Adressen nicht klar senden. Ich hoffe, das verstößt nicht gegen die Forenregeln...)

    AutoIt
    #include <IE.au3>
    #include <MsgBoxConstants.au3>
    
    
    Local $oIE = _IECreate("https://XXX.com/itim/console/main")
    $sTxt = _IEBodyReadHTML($oIE)
    
    
    MsgBox($MB_SYSTEMMODAL, "HTML Info", $sTxt)


    Das XXX ist die Seite, die zu erreichen ist. Ist eine Seite, die nur per Browser von unserem Intranet aus erreichbar ist. (auf meinem PC gibt es auch nur den Internet Explorer als Browser)

    Die Seite stellt eine Berechtigungsverwaltung dar.
    Leider bekomme ich von eben dieser Seite mit der Klasse IE.au3 keinerlei Infos heraus.
    Oben genannter Code bricht ab. In der Console erscheint folgendes:


    >"C:\Program Files (x86)\AutoIt3\SciTE\..\AutoIt3.exe" "C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "C:\Users\Benutzer\Desktop\Rollenzuweisung\test.au3" /UserParams
    +>11:25:59 Starting AutoIt3Wrapper v.15.920.938.0 SciTE v.3.6.0.0 Keyboard:00000407 OS:WIN_7/Service Pack 1 CPU:X64 OS:X64 Environment(Language:0407)
    +> SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE UserDir => C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper
    >Running AU3Check (3.3.14.2) from:C:\Program Files (x86)\AutoIt3 input:C:\Users\Benutzer\Desktop\Rollenzuweisung\test.au3
    +>11:25:59 AU3Check ended.rc:0
    >Running:(3.3.14.2):C:\Program Files (x86)\AutoIt3\autoit3.exe "C:\Users\Benutzer\Desktop\Rollenzuweisung\test.au3"
    --> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
    --> IE.au3 T3.0-2 Error from function _IELoadWait, $_IESTATUS_ClientDisconnected (-2147417848, Browser has been deleted prior to operation.)
    "C:\Program Files (x86)\AutoIt3\Include\IE.au3" (1583) : ==> The requested action with this object has failed.:
    Return SetError($_IESTATUS_Success, 0, $oObject.document.body.innerHTML)
    Return SetError($_IESTATUS_Success, 0, $oObject^ ERROR
    ->11:26:00 AutoIt3.exe ended.rc:1
    +>11:26:00 AutoIt3Wrapper Finished.
    >Exit code: 1 Time: 1.804


    Probier ich das ganze bei einer anderen Website (zB https://autoit.de/www.google.de), funktioniert das alles (ein Riesen HTML Text). Was könnte das Problem mit unserer Website sein/wie könnte ich den Fehler umgehen?
    Ich möchte ein Skript bauen, das Automatisch bestimmte Werte einträgt und bestimmte Schaltflächen im Browser klickt.

    PS: Wir reden hier von einer Seite, für die ein LOGIN nötig ist. Allerdings bin ich zu dem Zeitpunkt des Seitenaufrufes bereits eingeloggt.

  • Ohne die Seite schwierig zu sagen... gib uns bitte Mal ein bisschen mehr "Input" - ersetze deine Zeile 4 durch folgendes:

    AutoIt
    Local $oIE = _IECreate("https://XXX.com/itim/console/main")
    Local $error = @error
    Local $extended = @extended
    ConsoleWrite("@error creating webpage: " & $error & @CRLF)
    ConsoleWrite("@extended creating webpage: " & $extended & @CRLF)

    Dann postest du uns bitte den Output deiner Konsole - damit hätten wir wenigstens die genauen Fehlercodes und der Fehler ist leichter zu finden, wenn man schon ohne die Webseite arbeiten muss.

    Es gibt Tage, da trete ich nicht ins Fettnäpfchen. Ich falle in die Friteuse.

  • Danke für deine Rückmeldung.

    Wie gesagt, die Seite ist auch nur aus unserem Intranet erreichbar... Ich darf leider keine weiteren Infos rausgeben. Ich weiß nicht, ob das "von oben" so gern gesehen wird.

    Wenn ich die benannten Änderungen eingebe, sagt die Konsole folgendes:


    >"C:\Program Files (x86)\AutoIt3\SciTE\..\AutoIt3.exe" "C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "C:\Users\Benutzer\Desktop\Rollenzuweisung\test.au3" /UserParams
    +>12:33:55 Starting AutoIt3Wrapper v.15.920.938.0 SciTE v.3.6.0.0 Keyboard:00000407 OS:WIN_7/Service Pack 1 CPU:X64 OS:X64 Environment(Language:0407)
    +> SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE UserDir => C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper
    >Running AU3Check (3.3.14.2) from:C:\Program Files (x86)\AutoIt3 input:C:\Users\Benutzer\Desktop\Rollenzuweisung\test.au3
    +>12:33:55 AU3Check ended.rc:0
    >Running:(3.3.14.2):C:\Program Files (x86)\AutoIt3\autoit3.exe "C:\Users\Benutzer\Desktop\Rollenzuweisung\test.au3"
    --> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
    --> IE.au3 T3.0-2 Error from function _IELoadWait, $_IESTATUS_ClientDisconnected (-2147417848, Browser has been deleted prior to operation.)
    @error creating webpage: 9
    @extended creating webpage: 0
    "C:\Program Files (x86)\AutoIt3\Include\IE.au3" (1583) : ==> The requested action with this object has failed.:
    Return SetError($_IESTATUS_Success, 0, $oObject.document.body.innerHTML)
    Return SetError($_IESTATUS_Success, 0, $oObject^ ERROR
    ->12:33:55 AutoIt3.exe ended.rc:1
    +>12:33:55 AutoIt3Wrapper Finished.
    >Exit code: 1 Time: 0.9727


    Nur Informativ; Mein Quelltext sieht nun folgendermaßen aus:


    Edit: Ich probiere mal ein paar Öffentliche Seiten aus und schaue ob ich den Fehler irgendwo reproduzieren kann...

    Ich habe auch gerade gemerkt: Die Login Seite endet auf .jsp.
    Also https://XXX.com/itim/console/jsp/logon/Login.jsp
    Aber wie gesagt - zum Zeitpunkt an dem das Skript läuft, bin ich bereits eingeloggt.
    Die Seite heißt dann wie oben beschrieben.

    Ich habe mir diesen Thread durchgesehen:
    Auslesen JSP/HTML-Seite
    Und habe es mit InetRead versucht. Das funktioniert, hier bekomme ich etwas zurück. (nachdem ich die Variable mit BinaryToString bearbeitet habe). Das sieht ziemlich nach HTML aus. Das nützt mir nur leider nichts, weil ich ja Schaltflächen anklicken und Werte eintragen etc. muss...

  • Ohne den Quelltext der Seite ist das ganze schier unmöglich, dauert auf jedenfall deutlich länger. Oder kann einer deiner Kollegen eine Demoseite (ohne Firmeninternas) online stellen? Muß halt selbes Schema wie Orinalseite einhalten,damit du es auf das Original übertragen kannst.

    Ohne eines von beiden wird dies Thema nur theoretisch diskutiert bzw. mit viel Trail and Error Versuchen ablaufen, ob's dann 1 Woche oder ein halbes Jahr dauert oder du schon vorher frustriert aufgibst kann ich nicht beurteilen.

    Oder Ihr holt euch einen externen Profi, mit Schweigeklausel im Vertrag.

  • Da das eine .jsp und kein html ist:
    Lass dir mal das hier als Datei speichern oder anzeigen: $html=BinaryToString(InetRead("XXX.com/itim/console/jsp/logon/Login.jsp",4),4)
    Wenn dort nirgendwo ein ...<html>...<body>...</body>...</html>... steht, probier mal nen _IEDocReadHTML.
    Ohne Body wirst du dich nämlich schwertun, den Body auszulesen, und das könnte auch der Grund sein, warum er bei dem Objekt $oObject.document.body.innerHTML nicht auf das document zugreifen kann.
    Wenn du also nur den Text der Seite brauchst guck dir mal das $html oben an. Ansonsten eventuell alles Firmenrelevante unkenntlich machen und dann hier hochladen.


    MfG Kanashius.

  • Ich habe das mal gemacht.
    Ich denke, hier sind keine Internas mehr drin... Falls doch, bitte kurzen Hinweis :)

    Der Quelltext stellt die Login Seite dar (über die komme ich mit InetRead nicht hinweg) - bei der funktionierts aber ebenso nicht...

    Die Absätze sind Original so. Weiß auch nicht warum die so groß sind.

    Diese body-Deklarationen sind vorhanden.


    Spoiler anzeigen


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <!--/********************************************************************
    * Licensed Materials - Property of IBM
    *
    * (C) Copyright IBM Corp. 2007, 2014 All Rights Reserved.
    *
    * US Government Users Restricted Rights - Use, duplication, or
    * disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
    *
    *******************************************************************/-->
    <!--**************************************************************


    *


    * Licensed Materials - Property of IBM


    *


    * 5747-SM3


    *


    * (C) Copyright IBM Corp. 2005,2012 All Rights Reserved.


    *


    * US Government Users Restricted Rights - Use, duplication or


    * disclosure restricted by GSA ADP Schedule Contract with


    * IBM Corp.


    *


    *******************************************************************-->


    <!-- Version 5, Build: %BUILD_VERSION% -->
    <html lang="en_US" dir="ltr">
    <head>
    <title>Administration</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta http-equiv="Cache-Control" content="no-cache">
    <meta http-equiv="Cache-Control" content="no-store">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Expires" content="-1">
    <script src="/itim/console/js/common.js" lang="javascript"></script>
    <script src="/itim/console/js/fullFormAPI.js" lang="javascript"></script>
    <link type="text/css"
    href="/itim/console/css/loginPage.css" />
    <link rel="shortcut icon" href="/itim/console/favicon.ico"
    type="image/x-icon" />
    </head>
    <body dir="ltr" bgcolor="#FFFFFF">
    <LINK href="/itim/console/ps/css/tungsten/skin.css" rel="stylesheet"
    type="text/css">
    <SCRIPT lang="javascript" src="/itim/console/ps/js/wcl.js"></SCRIPT>
    <SCRIPT lang="javascript" src="/itim/console/ps/js/wclTraditional.js"></SCRIPT>
    <SCRIPT src="/itim/console/ps/js/WClient.js" type="text/javascript"></SCRIPT>
    <SCRIPT lang="javascript" src="/itim/console/ps/js/wclAjax.js"></SCRIPT>
    <SCRIPT lang="javascript" src="/itim/console/ps/js/AjaxUtilities.js"></SCRIPT>
    <SPAN class="cont1" id="W630c630cd744d5ee39891">
    <DIV id='AJAX_CONTAINER'>
    <DIV id='PG_630c630cd744d5ee39891'>
    <FORM action="/itim/console/j_security_check" class="frm1"
    dir="ltr" id="LOGIN" method="POST" name="LOGIN">
    <INPUT id="wh" name="wh" type="hidden" value="wh"><INPUT id="wa"
    name="wa" type="hidden" value="wa"> <INPUT id="treeFunc"
    name="treeFunc" type="hidden" value="treeFunc"> <SPAN
    dir="ltr"> <script language="javascript">
    // if (document.cookie == "") {
    if (!isCookieEnabled()) {
    top.location.replace("/itim/console/jsp/common/nocookie.jsp");
    }


    function isCookieEnabled() {
    var cookieEnabled = (navigator.cookieEnabled)? true : false;
    //if navigator,cookieEnabled is not supported
    if (typeof navigator.cookieEnabled == "undefined" && !cookieEnabled){
    document.cookie = "testcookie";
    cookieEnabled = (document.cookie.indexOf("testcookie")!= -1)? true : false;
    }
    return cookieEnabled;
    }

    function reposition() {
    var centerz = document.getElementById("center-area-z");
    var mbox = document.getElementById("message");
    if (mbox!=null) {
    var h = mbox.clientHeight;
    centerz.style.top = h+"px";
    }
    if( centerz && document.body.dir=="rtl") {
    centerz.style.backgroundPosition="left top";
    centerz.style.backgroundImage="url(/itim/console/html/images/left-dec-2.gif)";
    }
    }

    window.onload = reposition;
    reposition();
    </script>


    <IFRAME src="/itim/console/custom/banner.html"
    width="100%" height="71" frameborder="0" scrolling="no">
    </IFRAME>


    <div class="content-area">
    <div align="center">
    <div id="message"><br />
    <br />
    <br />
    <br />
    <SPAN class="cont1" id="messagebox.error.login"> <SPAN
    dir="ltr"> </SPAN> </SPAN></div>
    </div>
    <div id="center-area"></div>
    <div id="center-area-z" role='main'
    align="left"><span
    class="font3">Type your user ID and password, and then click Log In.</span>
    <a href="javascript:launchHelp('/itim/consolehelp/html/en/ui/ui_login.html')" title="Help"><IMG alt="Help" src="/itim/console/html/images/ua.gif" border="0"> </a>
    <br />
    <br />
    <table id="loginFieldsTable" role="presentation">
    <tr>
    <td align="right"
    class="loginform" colspan="2"><span class="font2"> <input
    type="hidden" name="command" id="command" value="">
    <TABLE border="0" cellpadding="0" cellspacing="0"
    dir="ltr" role="presentation">
    <TR>
    <TD valign="TOP"><LABEL class="inp3" for="j_username">
    User ID</LABEL></TD>
    <TD> </TD>
    <TD>

    <INPUT class="te1" id="j_username" maxlength="240"
    name="j_username"
    onkeypress="return submitEnter(this,event,'SUBMIT')" size="25"
    type="text">

    </TD>
    </TR>
    </TABLE>
    </span></td>
    </tr>
    <tr>
    <td align="right"
    class="loginform" colspan="2"><span class="font2">
    <TABLE border="0" cellpadding="0" cellspacing="0"
    dir="ltr" role="presentation">
    <TR>
    <TD valign="TOP"><LABEL class="inp3" for="j_password">Password</LABEL></TD>
    <TD> </TD>
    <TD>

    <INPUT class="te1" id="j_password" maxlength="240"
    name="j_password"
    onkeypress="return submitEnter(this,event,'SUBMIT')" size="25"
    type="password">

    </TD>
    </TR>
    </TABLE>
    </span></td>
    </tr>
    <tr>
    <td width="33%"> </td>
    <td class="loginform">

    </td>
    </tr>
    <tr>
    <td width="33%"> </td>
    <td class="loginform"><INPUT class="b1" dir="ltr"
    id="button.ok" name="SUBMIT"
    onclick="frmAct('SUBMIT','LOGIN','wh');className='b1';this.blur();disableForm(this,form,true);prepForSubmit();form.submit();"
    onmouseout="className='b1'" onmouseover="className='b2'"
    type="submit" value="Log In"></td>
    </tr>
    </table>
    </div>
    </div>
    </SPAN></FORM>
    <SCRIPT type="text/javascript">
    focusElementId='j_username';
    if ( top != self ) {
    top.location.replace(unescape(top.location.pathname));
    }
    </SCRIPT> <script language="javascript">
    addClientTime(document.forms[0]);
    </script></DIV>
    </DIV>
    </SPAN>
    <script language="javascript" type="text/javascript">
    createOnloadForSetupPage('loginPRE_LOGIN');
    </script>
    </body>
    </html>