Pausiert das Skript bis eine Seite im Browser fertig geladen wurde
#include <IE.au3>
_IELoadWait ( ByRef $oObject [, $iDelay = 0 [, $iTimeout = -1]] )
$oObject | Objekt-Variable einer InternetExplorer.Application oder eines DOM-Elements |
$iDelay | [optional] Zeit in Millisekunden, welche vor dem Beginn der Überprüfung gewartet werden soll. |
$iTimeout | [optional] Zeit in Millisekunden, welche maximal gewartet werden soll. (Standardwert: 300000 ms = 5 min) |
Erfolg: | 1 |
Fehler: | 0 und setzt das @error Flag auf ungleich null |
@error: | 1 ($_IEStatus_GeneralError) - Allgemeiner Fehler 3 ($_IEStatus_InvalidDataType) - Ungültiger Datentyp 4 ($_IEStatus_InvalidObjectType) - Ungültiger Objekttyp 6 ($_IEStatus_LoadWaitTimeout) - Ladezeit überschritten 8 ($_IEStatus_AccessIsDenied) - Zugriff verweigert 9 ($_IEStatus_ClientDisconnected) - Verbindung abgebrochen |
@extended: | Beinhaltet Nummer des ungültigen Parameters |
Einige IE.au3-Funktionen rufen _IELoadWait() automatisch auf (z.B. _IECreate(), _IENavigate() etc.).
Bei den meisten dieser Funktionen kann man dieses Verhalten mit einem $fWait Parameter abschalten, wenn man dies nicht möchte oder wenn man _IELoadWait() selbst aufrufen will.
Wenn DOM-Objekte an die _IELoadWait()-Funktion übergeben werden, wird der Ladestatus der übergeordneten Elemente bis zum übergeordneten Fenster überprüft.
Manche Sicherheitseinstellungen des Browsers können unter Umständen _IELoadWait() daran hindern, dass das Skript erst fortgesetzt wird, wenn die Seite fertig geladen wurde. Dies kann Fehlermeldungen zur Folge haben.
In diesen Fällen sollte man auf _IELoadWait() verzichten und stattdessen auf alternative Methoden ausweichen, um auf das Fertigstellen des Ladevorgangs einer Webseite zu warten.
Dies kann z.B. durch Sleep(), Auslesen der Browser-Status-Bar oder anderen Methoden erreicht werden. Wenn Funktionen verwendet werden, die _IELoadWait() intern nutzen und diese für andere Objekte als das InternetExplorer-Browser Objekt verwendet werden, kann es unter Umständen sinnvoller sein, wenn man _IELoadWait() stattdessen manuell aufruft. (z. B. _IELoadWait($oIE)).
Die häufigsten Fehlerquellen sind automatische Weiterleitungen und Sicherheitseinstellungen, die Cross-Site-Scripting verhindern, in Verbindung mit Frames. Automatische Seitenaktualisierungstechniken einiger Anwendungen (z.B. Googlemail) können ebenfalls Probleme verursachen.
_IEAction, _IEBodyWriteHTML, _IECreate, _IEDocWriteHTML, _IEFormImageClick, _IEFormSubmit, _IEImgClick, _IELinkClickByIndex, _IELinkClickByText, _IELoadWaitTimeout, _IENavigate
#include <IE.au3>
; Öffnet das AutoIt-Forum und springt per Tab zu "Neue Beiträge" startet den Link durch drücken der Enter-Taste
; Dann wird gewartet bis die Seite komplett geladen wurde, bevor das Skript weiterläuft.
Local $oIE = _IECreate("http://www.autoitscript.com/forum/index.php")
Send("{TAB 12}")
Send("{ENTER}")
_IELoadWait($oIE)