_IELoadWait Fehler mit Intranet Webseite

  • Hi zusammen,


    ich muss mich mal wieder mit einem Problem an euch wenden.
    In einem Script für unser Unternehmen, möchte ich gerne die Zeit messen, die unsere Intranet Seite zum laden braucht.
    Ich hatte dies bisher so gelöst:


    Ich bekomme folgenden Fehler in der Konsole:

    Console Error:
    -->IE.au3 T3.0-2 Error from function _IELoadWait, $_IESTATUS_ClientDisconnected(-2147417848, Browser has been deleted prior to operation.)
    -->IE.au3 T3.0-2 Error from function _IELoadWait, $_IESTATUS_InvalidObjectType ()

    Das hatte auch anfangs super funktioniert, bis ich "#RequireAdmin" entfernen musste, da unsere User keine AdminRechte haben.
    Auf diesen Fehler wird selbst auf den offiziellen Seiten hingewiesen und "Workarounds" angeboten:
    Quelle: https://autoit.de/onlinehilfe/libfunctions/_IECreate.htm

    Wenn der Browser eine URL laden soll, die in einer anderen Sicherheitszone liegt, wird in Windows Vista wird ein neues Browser Fenster erstellt. Dies erhöht die Sicherheit. Dies geschieht auch bei dem ersten erstellen und wenn die Seite durch _IECreate erstellt wurde. Das neue Fenster ist eine neue Browser Instanz und vorherige Browser Instanzen haben keinen Bezug mehr darauf.
    Es gibt verschiedene Möglichkeiten dies zu umgehen:
    1) Es kann #RequireAdmin in dem Code hinzugefügt werden (dies ist notwendig, wenn der Account ein Teil der Administratorgruppe ist und zeigt an, dass notwendige Referenzen verfügbar sind).
    2) Es kann _IEAttach verwendet werden um es an ein neues Browser Fenster anzuhängen.
    3) Es kann die Zielwebseite zu der vertrauten Sicherheitszone im Internet Explorer hinzugefügt werden.
    4) Es kann der "geschützte Modus" im Internet Explorer abgeschaltet werden.
    5) Es kann die Benutzerkontensteuerung (UAC) abgeschaltet werden. Jedoch muss man sich im Klaren sein, was es bedeutet, wenn man die Sicherheitsfeatures des Internet Explorers abschaltet, wenn man ungeschützte Seiten besucht.

    Zu 1) #RequireAdmin kann leider nicht angewendet werden
    Zu 2) Ich habe schon versucht es mit _IEAttach zu lösen, aber ich verstehe leider nicht, wie das damit funktionieren soll. Ich habe auch bisher keine Tutorial oder so gefunden :(
    Zu 3) Leider IT-Seitig nicht so ohne weiteres möglich. Wäre glaube ich mehr Aufwand, als eine Alternative (3rd Level Support in UK)
    Zu 4) ist bereits deaktiviert
    Zu 5) Lieber nicht ;)

    Vielleicht gibt es ja auch eine ganz andere Möglichkeit, die mir nicht einfällt. Mehrere Gehirne denken ja bekanntlicher Weise besser als eins ;)

    Was brauche ich:
    Unsere Intranet Website muss in IE gestartet werden (auch gerne mit Umwegen) und es muss irgendwie die Zeit gemessen werden, bis die Website komplett geladen ist.

    Klingt einfach, ist es aber (zumindest für mich) nicht. Problem ist eben, das die Website in den Internet Optionen unter Sicherheit in der Gruppe "lokales Intranet" eingetragen ist.

    Mir ist jetzt gerade eingefallen ob es möglich ist, die Netzwerklast eines Prozesses (iexplorer.exe) zu überwachen. Wenn dies auf Null geht, "Stoppuhr anhalten".

    Wäre wieder für jeden Tipp dankbar!

    Grüße
    Hector

    Hammer high, to the sky
    Follow the warrior and king
    Call out Hector's hymn
    Hammer high, amplify
    Hail to the warrior
    Call out Hector's hymn
    :rock:

  • Probier das mal:

    So wird auf jedenfall nur das Laden gezählt. das öffnen des IE kostet ja auch Zeit.
    Mit der 1 hinter der Adresse wird probiert an einen anderen IE zu attachen. Musst mal sehen, ob es klappt.

    MfG Kanashius

  • Hi Kanashius,

    danke für deine schnelle Antwort.

    Ich habe es mal direkt ausprobiert, aber leider erzielt es nicht den gewünschten Effekt :(
    Er macht zwar genau das, was er soll, allerdings öffnet er mir direkt nach dem Öffnen des IE die MsgBox mit der Info "Needed Time 0.03"
    Im Hintergrund sehe ich dann, wie der Internet Explorer auf die gewünschte Intranet Seite weitergeleitet wird.

    Bekomme auch eine Meldung in der Konsole:

    --> IE.au3 T3.0-2 Warning from function _IEAttach, $_IESTATUS_NoMatch

    Kannst du damit etwas anfangen?

    Hammer high, to the sky
    Follow the warrior and king
    Call out Hector's hymn
    Hammer high, amplify
    Hail to the warrior
    Call out Hector's hymn
    :rock:

  • Ah, Weitergeleitet. Von wo weitergeleitet. Wenn das über eine zwischenseite geht, wird diese geladen, ist fertig geladen ->ieloadwait sagt, es ist fertig. Und danach wird erst die andere geladen. Dann musst du die seite direkt aufrufen.

    $_IESTATUS_NoMatch sagt nur, dass er keinen IE gefunden hat, an den er sich anhängen kann, und deshalb einen neuen startet.

  • nene, habe mich falsch ausgedrückt.. also nicht weitergeleitet.. die Seite wurde eben geladen. ;) nicht weitergeleitet
    Also alles so wie es soll, nur eben leider das der Counter und nicht geht und ich diese tollen Fehlermeldungen bekomme.. ;(

    Gibt es noch andere Möglichkeiten, die Ladezeit zu messen? z.B. die Netzwerkauslastung des Prozesses zu messen und dann bei "idle" zu stoppen?

    Hammer high, to the sky
    Follow the warrior and king
    Call out Hector's hymn
    Hammer high, amplify
    Hail to the warrior
    Call out Hector's hymn
    :rock:

  • Nimm den richtigen Parameter bei _IENavigate:

    Zitat von Helpfile


    Parameters

    $oObject Object variable of an InternetExplorer.Application, Window or Frame object
    $sUrl URL to navigate to (e.g. "http://www.autoitscript.com")
    $iWait [optional] specifies whether to wait for page to load before returning
    0 = Return immediately, not waiting for page to load
    1 = (Default) Wait for page load to complete before returning
  • Hi zusammen, sorry für die späte Antwort. Musste mich um andere Themen kümmern.

    Ich habe den Parameter angepasst (_IENavigate($oIE,"http://intranet.firma.de",1)), aber leider ohne Erfolg.
    Bekomme den Fehler "--> IE.au3 T3.0-2 Warning from function _IEAttach, $_IESTATUS_NoMatch" und es wird keine Zeit gemessen.
    Bekomme nur 0 oder 1 Sekunde raus.

    Gibt es vielleicht einen ganz anderen Weg?

    Hammer high, to the sky
    Follow the warrior and king
    Call out Hector's hymn
    Hammer high, amplify
    Hail to the warrior
    Call out Hector's hymn
    :rock:

  • Hi zusammen,

    ich konnte ein Workaround finden und hoffe, es hilft ggf jemandem, der das gleiche Problem hat
    Der Script sieht wie folgt aus:


    Hat mich nun viel nerven gekostet, aber so kann man die Ladezeit der Website messen :part::party:

    Anfrage hat sich damit erledigt :)
    Danke an alle, für eure Hilfe und Tipps!

    Grüße
    Hector

    Hammer high, to the sky
    Follow the warrior and king
    Call out Hector's hymn
    Hammer high, amplify
    Hail to the warrior
    Call out Hector's hymn
    :rock: